Servlet生命周期是指Servlet实例从创建到响应客户请求,直至销毁的过程。

Servlet程序本身不直接在Java虚拟机上运行,由Servlet容器负责管理其整个生命周期。

Servlet生命周期可分为四个阶段:实例化初始化处理请求销毁

  • Servlet加载和实例化

    • 在Servlet容器启动后,客户首次向Servlet发出请求,Servlet容器会判断内存中是否存在指定的Servlet对象,如果没有则创建它,然后根据客户的请求创建HttpRequest、HttpResponse对象,从而调用Servlet 对象的service方法。
    • 在为Servlet配置了自动装入选项(load-on-startup)时,服务器在启动时会自动装入此Servlet。
  • Servlet初始化
    • Servlet实例化后,Servlet容器将调用Servlet的init方法来对Servlet实例进行初始化,如果初始化成功,Servlet在Web容器中会处于服务可用状态;如果初始化失败,Servlet容器会销毁该实例。
    • 当Servlet运行出现异常时,Servlet容器会使该实例变为服务不可用状态。
  • Servlet请求处理
    • 服务器接收到客户端请求,会为该请求创建“请求”对象和“响应”对象,并调用service()方法,service()方法再调用其他方法来处理请求。
    • 在Servlet生命周期中,service()方法可能被多次调用。当多个客户端同时访问某个Servlet的service()方法时,服务器会为每个请求创建一个线程,这样可以并行处理多个请求,减少请求处理的等待时间,提高服务器的响应速度。但同时也要注意对同一对象的并发访问问题。
  • Servlet服务终止
    • 当Servlet容器需要终止Servlet(如Web服务器被关闭或需要出让资源),它会先调用Servlet的destroy()方法使其释放正在使用的资源。
    • 在调用destroy()方法之前,必须让当前正在执行service()方法的任何线程完成执行,或者超过了服务器定义的时间限制。
    • 在destroy()方法完成后,Servlet容器必须释放Servlet实例以便被垃圾回收。

【Servlet】Servlet生命周期相关推荐

  1. java之Servlet的生命周期

    Servlet运行在Servlet容器中,其生命周期由容器来管理.Servlet的生命周期通过javax.servlet.Servlet接口中的init().service()和destroy()方法 ...

  2. 初次使用MyEclipse || Servlet 的生命周期

    Servlet 的生命周期: 从第一次调用,到服务器关闭 如果在 web.xml 中配置了 load-on-startup 则是从服务器开启到服务器关闭 package com.cl.servlet; ...

  3. 框架:Servlet的生命周期

    Servlet运行在Servlet容器中,其生命周期由容器来管理.Servlet的生命周期通过javax.servlet.Servlet接口中的init().service()和destroy()方法 ...

  4. 【Servlet】HTTP 协议之请求方式、Servlet介绍、Servlet 的生命周期

    HTTP 协议之请求格式 HTTP协议官网:其中有http协议原文https://www.w3.org/Protocols/ 请求格式的结构: 请求头:请求方式.请求的地址和HTTP 协议版本 请求行 ...

  5. 集成 Tomcat、 Servlet 的生命周期

    通过对 Servlet 的 web.xml 配置,我们知道 Servlet 的配置方式 有很多种,也很多需要注意的地方.但是同时我们也发现每次在 Myeclipse 中更改了代码后,都需要重新复制代码 ...

  6. Servlet的生命周期和工作原理

    原文 一.Servlet生命周期分为三个阶段: 1).初始化阶段:调用init()方法 2).响应客户端请求阶段:调用service()方法 3).终止阶段:调用destroy()方法         ...

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

    Servlet的生命周期分为5个阶段:加载.创建.初始化.处理客户请求.卸载. (1)加载:Servlet容器(Tomcat)通过类加载器加载servlet文件(.class) (2)创建:通过调用s ...

  8. servlet的生命周期 (四个阶段).

    1.加载阶段 加载并实例化我们的servlet实例 从我们的Tomcat(容器)启动,Tomcat会通过类的加载器加载我们的servlet,并调用默认的构造函数 2.初始化阶段init() servl ...

  9. 阅文 java面试题,阅文笔试:讲讲servlet的生命周期

    大家好,我是勾玉! 该问来自2021届阅文Java方向笔试卷,servlet想必大家都有所了解,这是一个非常重要的知识点,希望大家多多关注. servlet的生命周期可分为初始化.响应请求.终止三个阶 ...

  10. Servlet及其生命周期

    今天开始对Servlet进行一个较为全面深入的学习,并将学习所得记录于此,与君共勉. 思维导图如下: 接下来开始对各部分进行介绍总结. 1.什么是servlet 定义:Servlet是小服务程序或服务 ...

最新文章

  1. 判断为空:null、undefined、空字符串、中文空格
  2. HTML5全屏API
  3. 如果你能用你的大脑控制电脑,感觉怎么样?
  4. Android Studio——[Missing essential plugin: org.jetbrains.android ...]解决方案
  5. 网站设计大访问量应用的解决方案
  6. 常见数据结构的 Python 实现(建议收藏)
  7. webpack4 es6转换
  8. imagemagick, imagick和magickwand的安装
  9. H.264参考软件JM12.2RC代码详细流程
  10. python数字图像处理(4):图像数据类型及颜色空间转换
  11. python统计时间的次数的代码_python脚本实现统计日志文件中的ip访问次数代码分享...
  12. oppo包名_常用APP(apk)对应包名总结(持续更新...)
  13. 人脸识别中的损失函数ArcFace及其实现过程代码(pytorch)--理解softmax损失函数及Arcface
  14. dns配置异常怎么修复_dns配置异常不能上网如何修复
  15. 笔记——输入框循环使用
  16. 【PPT计时器】如何在wps演示PPT中使用定时器、计时器功能?不使用第三方插件,仅仅使用第三方计时器软件
  17. 机械键盘按键重复_如何修复机械键盘上的卡住或重复键
  18. 如何做一个网页送给女朋友做生日礼物
  19. 春天,陪你一起去赏雨——HTML5下雨效果
  20. python 奶茶系统2.0

热门文章

  1. Pytorch中的Batch Normalization操作
  2. 【codeforces 507E】Breaking Good
  3. 织梦直接往数据库写入数据
  4. 隐藏文字的另一种方法
  5. php 主进程子进程,PHP中的子进程的任何等价物?
  6. java综合案例_综合实例 - Java House - BlogJava
  7. java 工具类sort_Java 通用排序工具类ListSortUtils
  8. python3迭代器是什么,python3 迭代器
  9. 不是有效的函数或过程名_过程和函数
  10. echarts 获取点击的y轴数值_有机磷酸催化对醌的不对称直接加成反应合成轴手性芳基醌类化合物...