• servlet生命周期


    Servlet的生命周期分为5个阶段:加载、创建、初始化 init()、处理客户请求 service()、卸载 destroy()。


    1.加载:容器通过类加载器使用Servlet类对应的文件来加载Servlet。

    2.创建:通过调用Servlet的构造函数来创建一个Servlet实例。

    3.初始化:通过调用Servlet的init()方法来完成初始化工作,这个方法是在Servlet已经被创建,但在向客户端提供服务之前调用。

    4.处理客户请求:Servlet创建后就可以处理请求,当有新的客户端请求时,Web容器都会创建一个新的线程来处理该请求。接着调用Servlet的Service()方法来响应客户端请求(Service方法是根据请求的method属性来调用doGet()和doPost())。

    5.卸载:容器在卸载Servlet之前需要调用destroy()方法,让Servlet释放其占用的资源。

    1.servlet 的生命周期

    主要有三个方法:

    1. init() 初始化阶段
    2. service() 处理客户端请求阶段
    3. destroy() 终止阶段

    初始化阶段:

    Servlet 容器加载 Servlet,加载完成后,Servlet 容器会创建一个 Servlet 实例并调用 init() 方法,init() 方法只会调用一次
    Servlet 容器会在一下几种情况装载 Servlet:

    Servlet 容器启动时自动装载某些 servlet,实现这个需要在 web.xml 文件中添加 1
    在 Servlet 容器启动后,客户首次向 Servlet 发送请求
    Servlet 类文件被更新后,重新装载

    处理客户端请求阶段:

    每收到一个客户端请求,服务器就会产生一个新的线程去处理。
    对于用户的 Servlet 请求,Servlet 容器会创建一个特定于请求的 ServletRequest 和 ServletResponse。
    对于 tomcat 来说,它会将传递来的参数放入一个 HashTable 中,这是一个 String–>String[] 的键值映射

    终止阶段:
    当 web 应用被终止,或者 Servlet 容器终止运行,或者 Servlet 重新装载 Servlet 新实例时,Servlet 容器会调用 Servlet 的 destroy() 方法

    2.servlet 的工作原理

    客户发送一个请求,Servlet 调用 service() 方法对请求进行响应,service() 方法会对请求的方法进行匹配,进入相应的逻辑层,完成请求的响应。

    但是 Servlet 接口和 GenericServlet 接口中没有 doGet(),doPost() 等方法,HttpServlet 中定义了这些,但是返回的都是 Error 信息,所以每次定义 Servlet 都要重写这些方法。

    Sertvlet 和 GenericServlet 是不特定于任何协议的,而 HttpServlet 是特定于 Http 协议的,所以 HttpServlet 中的 service() 方法中将 ServletRequest,ServletResponse 强转为 HttpRequest 和 HttpResponse,最后调用自己的 service 方法去完成响应。

  • 相关阅读:
    R语言dplyr包进行数据分组聚合统计变换(Aggregating transforms)、计算dataframe数据的分组加和值(sum)
    pringboot面向爱宠人群的宠物资讯系统36as8计算机毕业设计-课程设计-期末作业-毕设程序代做
    PAT 1029 旧键盘
    树莓派编写GPIO驱动程序(详细教程)
    3D Web轻量化工具HOOPS Web Platform助力Rapid DCS快速上市碳估算产品!
    【Linux】进程信号----(一篇带你熟知进程信号)
    Centos7.9 一键脚本部署 LibreNMS 网络监控系统
    Java 异步编程 (5 种异步实现方式详解)
    网络代理技术的广泛应用和安全保障
    Kubernetes (k8s) 管理工具 kubectl 命令详解
  • 原文地址:https://blog.csdn.net/agonie201218/article/details/137047318