Servlet

什么是Servlet

Servlet 是 JavaEE 规范之一。Servlet 是 JavaWeb 三大组件之一。JavaWeb 三大组件分别为:Servlet、Filter、Listener。Servlet主要功能为接收客户端发送的请求并响应数据给客户端。Servlet是由服务器调用并运行在服务器端上。

Servlet生命周期

  1. 构造器:当需要调用 Servlet 的服务但没有实例时,调用 Servlet 的构造器创建 Servlet 的实例
  2. init:当 Servlet 被实例化时,将调用 init() 方法初始化 Servlet
  3. service:收到请求调用 Servlet 的服务
  4. destroy:当 Web 工程关闭或 Servlet 长时间不被使用,则调用 destroy 方法销毁 Servlet 实例

Servlet类的继承体系

继承层次

  • Servlet - ServletConfig - Serializable 接口
    • GenericServlet 抽象类
      • HttpServlet 抽象类
        • 自定义 Servlet

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 大小限制 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/
Author
Ye JinHua
Posted on
July 7, 2023
Licensed under