Servlet生命周期

Servlet生命周期

服务器上

创建阶段:tomcat根据请求来创建一个servlet对象。

Tomcat会根据URL来找到servlet虚拟路径,通过web.xml找到对应的serlvet类,tomcat会分配一块内存空间作为servlet容器来存放创建出来的这些servlet对象,

(创建是通过Class cla=class.forName("类名"),cla.newInstance();创建servlet对象。)

初始阶段:调用init方法初始化servlet对象,且只会被调用一次

调用阶段:自动调用service方法,响应其所有方法,可以被调用多次

销毁阶段:调用destroy方法(通过Tomcat的reload/关闭tomcat/关闭计算机);

Servlet的每次提供服务实际都是调用service方法。只不过service方法内部会根据客户端的请求方式再决定调用doGet还是doPost。

初始化阶段

在以下时刻Servlet容器装载Servlet

1.Servlet启动时自动装载某些Servlet,实现方法:在web.xml文件中的中添加1

2.在Servlet容器启动后,客户端首次向Servlet发送请求

3.Servlet类文件被更新,重新装载Servlet

Servlet被装载后,Servlet容器创建一个Servlet实例调用Servlet的init方法进行初始化,在整个生命周期中,init方法只会被调用一次

调用阶段

对于客户的请求到达Servlet,Servlet容器会创建特定于这个请求的ServletRequest对象和ServletResponse对象,然后会调用Servlet的service方法。然后service方法从ServletRequest对象中获取客户的请求信息,处理该请求,并通过ServletResponse对象向客户端返回响应信息。

销毁阶段

当web应用被终止,或者Servlet容器终止运行,或者Servlet容器重新装载Servlet,Servlet容器会调用Servlet的destroy方法,去释放Servlet所占用的资源。

调用destroy方法的三种方式:通过Tomcat的Reload方式调用destroy,关闭Tomcat服务,关闭计算机。

相关推荐
biu_biubiu6 分钟前
我开源了 Codebook
前端·vue.js
下山6 分钟前
怎么把带自研插件的 DeepSeek Harness 部署到云服务器
前端
彭亚川Allen14 分钟前
985 在职研究生到底怎么样?是不是水硕?是不是.....?
前端·后端·程序员
YufJi16 分钟前
两棵树,两个线程:一个小程序引擎的架构拆解
前端
super_Omni26 分钟前
Chrome 插件入驻实战:从 Manifest V3 到过审上架的完整路径
大数据·前端·chrome
腾讯数据架构师42 分钟前
任务跑完怎么直接出图表?CubeStudio 任务可视化 ECharts 数据格式实操(CSV/JSON + metric.json,11 种图表一键渲染)
前端·json·echarts·数据可视化
小小小米粒1 小时前
不是在构造方法「之前」修饰 Bean、注入;是构造方法跑完之后,才做属性注入,再跑 @PostConstruct。
前端
小李科技1 小时前
【性能优化】事件委托:目标定位与 React/Vue 实战
前端·vue.js·react.js·面试·性能优化·前端框架
QianhangQianping1 小时前
一块大屏的数据在浏览器里怎么变成画面:背景、子屏、前景三层结构
前端·低代码·架构·编辑器·数据可视化·大屏可视化
梦想很大很大1 小时前
让 Codex 自由发挥,给 nvm-desktop 换个 UI
前端·人工智能·设计