Servlet
什么是Servlet
Servlet 是 JavaEE 规范之一。Servlet 是 JavaWeb 三大组件之一。JavaWeb 三大组件分别为:Servlet、Filter、Listener。Servlet主要功能为接收客户端发送的请求并响应数据给客户端。Servlet是由服务器调用并运行在服务器端上。
Servlet生命周期
- 构造器:当需要调用 Servlet 的服务但没有实例时,调用 Servlet 的构造器创建 Servlet 的实例
- init:当 Servlet 被实例化时,将调用 init() 方法初始化 Servlet
- service:收到请求调用 Servlet 的服务
- destroy:当 Web 工程关闭或 Servlet 长时间不被使用,则调用 destroy 方法销毁 Servlet 实例
Servlet类的继承体系
继承层次
- Servlet - ServletConfig - Serializable 接口
- GenericServlet 抽象类
- HttpServlet 抽象类
- 自定义 Servlet
- HttpServlet 抽象类
- GenericServlet 抽象类
GenericServlet 抽象类
继承 GenericServlet 只需要重写一个方法 -> service()
HttpServlet 抽象类
屏蔽了 get 请求和 post 请求,只需要复写 doGet() 和 doPost() 方法。service() 方法已经做好了分发:哪个请求调用哪个方法
ServletConfig 接口
- ServletConfig 对象对应 web.xml 文件中的 < servlet > 元素
- 可以获取初始化参数 init-param
- 可以获取 ServletContext 对象
ServletContext 接口
ServletContext 表示 Servlet 上下文对象。封装了上下文的环境详情。一个 Web 工程,只有一个 ServletContext 对象实例
- 获取 web.xml 中配置的上下文参数 context-param
- 获取当前的工程路径
- 获取工程部署后在服务器硬盘上的绝对路径
- 像 Map 一样存储数据
Cookie
什么是Cookie
是服务器通知客户端保存键值对的一种技术。客户端有了 Cookie 后,每次请求都发送给服务器。每个 Cookie 大小限制 4kb
也可以理解为是某些网站为了辨别有用户身份,进行 Session 跟踪而储存在用户本地终端上的数据,由用户客户端计算机暂时或永久保存的信息
Cookie的创建
setMaxAge() 方法可以设置 Cookie 对象的有效时间。正数为指定秒数后过期,负数为浏览器关闭时,0为马上删除
Cookie的特点
- 一般会保存在本地的用户目录下 AppData
- 一个 Cookie 只能保存一个信息
- 一个 Web 站点可以给浏览器发送多个 Cookie,每个站点最多可以存放20个 Cookie
- 大小限制 4kb
- 300个 Cookie 是浏览器的上限
Session
什么是Session
Session 对象存储特定用户会话所需的属性及配置信息,其存储位于服务器中
Session生命周期
服务器会把长时间没有活动的 Session 从服务器内存中清除,如果指定时长为负数,则永不超时,只有 invalidate 这个方法可以马上让 Session 会话无效
Session特点
- 服务器会给每一个用户(浏览器)创建一个 Session 对象
- 一个 Session 独占一个浏览器,只要浏览器没有关闭,这个 Session 就存在
- 用户登陆之后,整个网站都可以访问
- 没有存储数据量大小上限
Servlet
http://yjh-2860674406.github.io/2023/07/07/编程/JAVAEE/Servlet/