Servlet 和 Cookie-Session 学习笔记(基础)

news2024/9/24 21:26:57

简单来说:是运行在服务器端的 Java 程序,它作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层

用处:

使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页及处理数据并生成结果。这个过程可能需要访问数据库,执行 RMI 或 CORBA 调用,调用 Web 服务,或者直接计算得出对应的响应。发送显式的数据(即文档)到客户端(浏览器)。该文档的格式可以是多种多样的,包括文本文件(HTML 或 XML)、二进制文件(GIF 图像)、Excel 等。发送隐式的 HTTP 响应到客户端(浏览器)。这包括告诉浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。

而相比 CGI,Servlet 的优势:

  • Servlet 在 Web(网络) 服务器的地址空间内执行。这样它就没有必要再创建一个单独的进程来处理每个客户端请求。
  • Servlet 是独立于平台的,因为它们是用 Java 编写的。
  • 服务器上的 Java 安全管理器执行了一系列限制,以保护服务器计算机上的资源。因此,Servlet 是可信的。
  • Java 类库的全部功能对 Servlet 来说都是可用的。它可以通过 sockets 和 RMI 机制与 applets、数据库或其他软件进行交互。

总结:Servlet 是 Java 提供的动态互动 web 资源开发技术(也是 JavaEE 规范之一,实际上就是一个接口)

在正式使用 Servlet 之前先来看一下 Tomcat(一种 Web 运营服务器,同时也算个 Servlet 容器)

而 Tomcat 能帮我们很方便地接收和返回到请求!

 Servlet 使用快速入门

特点:

  • Servlet 是单例的
  • 配置通配符的时候可以用各种的通配符 *. 和一个 Servle t可以被多个配置映射
  • 访问 web 任何资源其实都是在访问 Servlet(即便是访问图片资源,Tomcat 都有默认 Servlet 处理)

Servlet 方法介绍: 

ServletConfig ServerContext 对象们

前者可以用来读取 web.xml 配置的初始化参数,避免写硬编码,而将配置写在配置文件中

后者是代表当前整个应用,所以它在 Tomcat 启动时就会被创建。我们一般用它来获取整个应用的配置选项或读取资源文件

总结:前者是单个的,后者是整个应用的。

request response 对象们

前者即封装了HTTP的请求头,而后者封装了HTTP的响应头

request 继承体系

request 获取请求数据

 

 通用方式 get/post 获取请求参数

 请求参数的中文乱码处理

请求参数转发

响应设置

响应重定向(和请求转发比较)

响应字符数据

响应字节数据

路径和虚拟目录设置的问题

Servlet 访问配置

urlPattern 四大配置规则:

XML 旧时配置方式

案例练习

SqlSessionFactor 工具类的抽取

Cookie Session 会话跟踪机制

前面已经看过了 Config(获取配置信息)、Context(代表整个Web应用)、Request(HTTP请求)、Response(HTTP响应)

名词解析:

  • 会话:指的是一对游览器和 web 服务器的连接通道(这里面可以包含多次请求和响应)
  • 会话跟踪:一种维持游览器状态的方法,由于HTTP协议的设置游览器就需要识别多次请求是否都来自同一个游览器,以便于在会话中的多次请求间共享数据
  • HTTP协议是无状态的。这代表每次游览器向服务器请求时,服务器都会将该请求视作新的请求,而业务需要我们通过会话跟踪来实现会话内数据共享

JavaEE HttpSession 接口来指导实现一次会话内的多次请求间数据共享功能。

Cookie 方法
格式描述
new Cookie(String name, String value)创建对象但必须传入名字和其值
getName()得到 Cookie 保存的名字
getValue()得到 Cookie 保存的值
setMaxAge(int seconds)设置 Cookie 存活时间(默认是负数:代表当客户端游览器关闭时则销毁 Cookie。零则代表删除对应 Cookie)
request getCookies()获取客户端传来的所有 Cookie 对象(HttpServletRequest)
response addCookie(Cookie cookie)将传入 cookie 交给客户端保存(HttpServletResponse)

Cookie 不能直接存储中文,需要进行转码:URL 编码

Session 方法
格式描述
request.getSession()创建对象
void setAttribute(String name, Object o)存储数据到 session 域
Object getAttribute(String name)根据 name 获取值
void removeAttribute(String name)根据 name 删除值
getId()获取 session 对应 id
invalidate()让 session 立刻无效
setMaxInactiveInterval(int i)设置 session 最大的有效时间(这个有效时间是两次访问服务器所间隔的最大时间,如果超过最大的有效时间,那么这个 session就失效了

CookieSession
存储位置客户端(游览器内存)服务端
安全性×
大小限制3KB无限制
存储时间长期存储默认30分钟
是否占用服务器资源不占用服务器资源占用服务器资源
比喻酒店的房卡酒店的临时停车票
实现关系Session 是基于 Cookie 实现的Cookie 的实现是基于 HTTP 协议的
共同点都是用来完成一次会话内的多次请求间数据共享功能

Servlet 教程 | 菜鸟教程Servlet 教程 Servlet 为创建基于 web 的应用程序提供了基于组件、独立于平台的方法,可以不受 CGI 程序的性能限制。Servlet 有权限访问所有的 Java API,包括访问企业级数据库的 JDBC API。 本教程将讲解如何使用 Java Servlet 来开发基于 web 的应用程序。 现在开始学习 Servlet! 谁适合阅读本教程? 本教程是专为 Java 程序员设计的。在阅读本教程之前,需要先了解..icon-default.png?t=N7T8https://www.runoob.com/servlet/servlet-tutorial.html

Servlet 代码优化

出现背景:Web 层的 Servlet 个数众多,这不利于维护

方法:将 Servlet 进行归类,比如同一个实体类的操作方法写到一个 Servlet 里面

 (将类级别 ——> 方法级别,便于管理)

遇见错误介绍:

注意!web项目要放在其根目录下,且要在项目结构里标记好地址之类的信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1019545.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

根据3d框的八个顶点坐标,求他的中心点,长宽高和yaw值(Python)

要从一个3D框的八个顶点求出它的中心点、长、宽、高和yaw值,首先需要明确框的几何形状和坐标点的顺序。通常这样的框是一个矩形体(长方体),但其方向并不一定与坐标轴平行。 以下是一个步骤来解决这个问题: 求中心点&a…

深度学习:cross-attention介绍以及与self-attention的区别

1.Cross-attention vs Self-attention Cross-attention的输入来自不同的序列,Self-attention的输入来自同序列,也就是所谓的输入不同,但是除此之外,基本一致。 具体而言, self-attention输入则是一个单一的嵌入序列。 …

长城公开秘密AI团队,杨继峰带队,明年城市NOH落百城

作者|Amy 编辑|德新 传统车企如何打磨智能化,大模型将为车企带来多少助力? 近日,长城汽车原沙龙品牌智能化中心负责人、智能化研发总监杨继峰以TCAL(Technology Center Al Lab,简称「AI Lab」)…

【产品运营】不理想的知识库产品

知识库是将自己平时看到或用到的产品知识进行汇总和整理,这是产品知识体系的初始系统,但很多企业的知识库管理其实并不理想 为什么写这篇文章?有3个原因: 帮前客户做解决方案预研;见过太多失败案例;市面上…

实验4 交换机端口隔离(access模式)

交换机端口隔离(access模式) 实验目的实验拓扑实验步骤(1)在未划分vlan前,配置pc1、pc2的地址,如图所示(2)测试两台pc机的连通性(3)创建vlan,并验…

虚拟化技术:深入浅出

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

源码编译Qt 5.15.9+msvc2019

官方文档里给出了详细步骤: Building Qt Sources Building Qt 5 from Git (Wiki) 注:本文基于windows11vs2019x64qt5.15.9,不编译Qt WebEngine 归纳总结如下: 准备阶段 Qt for Windows - Requirements 安装python,…

实战 | 服务端开发与计算机网络结合的完美案例

前言 大家好,我是Martin 后端,可以说是仅次于算法岗之外竞争最为激烈的岗位,而其中的服务端开发也是很多人会选择在秋招中投递的一个岗位,我想对于很多人来说,走上服务端开发之路的起点就是一个回声服务器了。 今天…

canal

1 安装配置 1.1 下载 https://github.com/alibaba/canal/releases/download/canal-1.1.6/canal.deployer-1.1.6.tar.gz 1.2 mysql配置binlog # on 时,代表着开启 show VARIABLES like log_bin; 1.3 创建MySQL canal用户 # 创建用户 create user canal% ident…

LabVIEW使用巴特沃兹低通滤波器过滤噪声

LabVIEW使用巴特沃兹低通滤波器过滤噪声 设备采集到的数据往往都有噪声,有时候这些数据要做判断使用,如果不处理往往会影响最终的结果。可以使用动态平滑,或者中值滤波等方法。这里介绍使用巴特沃斯低通滤波,也是非常方便的。 下…

Python算法练习 9.18

leetcode 1657 确定两个字符串是否相似 如果可以使用以下操作从一个字符串得到另一个字符串,则认为两个字符串 接近 : 操作 1:交换任意两个 现有 字符。 例如,abcde -> aecdb操作 2:将一个 现有 字符的每次出现转…

Stable Diffusion 系统教程 | 强大的ControlNet 控制网

2023年的2月13日,一款名叫ControlNet的插件横空出世,AI绘画变得更加可控 ControlNet直译过来很简单,就叫做控制网,开发者是一名华裔,毕业于苏州大学,目前在斯坦福做读博士一年级,大佬大佬&…

typora补丁

背景: 安装typora后试用期30天,打补丁可解决此问题 补丁路径 某盘 链接:https://pan.baidu.com/s/18MLqJHqTL7DXdCoaZvMfhg 提取码:vkgg 1.安装typora软件 2.打补丁 2.1.下载补丁包 解压 2.2.将解压文件复制到安装目录 2.3重…

【集成学习】对已训练好的模型进行投票

在不同的数据预处理情况下训练得到了三个SVM模型,结果都差不多,对这三个模型的分类结果进行投票 1、三个模型的model_path # 最终model的path self.model_path log_path/model_name_model.gz self.time_log log_path/model_name_time_log.csv# 模型1…

Java 华为真题-新学校选址

需求: 为了解新学期学生暴涨的问题,小乐村要建立所新学校,考虑到学生上学安全问题,需要所有学生家到学校的距离最短。 假设学校和所有学生家都走在一条直线之上,请问学校建立在什么位置,能使得到学校到各个学生家的距离和最短。 输入描述&…

【面试经典150 | 数组】轮转数组

文章目录 写在前面Tag题目来源题目解读解题思路方法一:使用额外的数组方法二:翻转数组 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附…

网络安全是什么?手把手教你认识网络安全

一、网络安全 1.概念 网络安全从其本质上讲就是网络上的信息安全,指网络系统的硬件、软件及数据受到保护。不遭受破坏、更改、泄露,系统可靠正常地运行,网络服务不中断。 (1)基本特征 网络安全根据其本质的界定&#…

怎样用图片去搜索商品呢?

taobao.item_search_img 为了进行电商平台 的API开发,首先我们需要做下面几件事情。 1)开发者注册一个账号 2)然后为每个taobao应用注册一个应用程序键(App Key) 。 3)下载taobaoAPI的SDK并掌握基本的API基础知识和…

博客数量为啥产出少了呢

如题博客数量为啥产出少了 gpt出来了之后大部分问题都可以通过gpt搜索到结果了,慢慢的就养成习惯了,很容易知道结果的东西就不想记录下来了,这获取就是人类的惰性吧,哈哈哈,越容易获取越不珍惜 提出几个问题 1. gpt是通过我们大家写的博客和大量文档学习出来的,如果大家都不…

PMP第七版考试该怎么学?

第七版怎么学习,建议报个培训班,第七版比第六版更加难以理解,除非专业人士,真的想一个人啃完难度很大。 想自学的话,可以建议学习第六版加敏捷的内容,考纲就是这两部分的内容。 考试占比参考(2…