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服务,关闭计算机。

相关推荐
王王碎冰冰几秒前
基于 Vue3@3.5+跟Ant Design of Vue 的二次封装的 Form跟搜索Table
前端·vue.js
naice1 小时前
我对github的图片很不爽了,于是用AI写了一个图片预览插件
前端·javascript·git
天蓝色的鱼鱼1 小时前
Element UI 2.X 主题定制完整指南:解决官方工具失效的实战方案
前端·vue.js
RoyLin1 小时前
TypeScript设计模式:门面模式
前端·后端·typescript
小奋斗1 小时前
千量数据级别的数据统计分析渲染
前端·javascript
小文刀6961 小时前
CSS-响应式布局
前端
三小河1 小时前
overflow:auto 滚动的问题,以及flex 布局中如何设置
前端·javascript
薛定谔的算法2 小时前
phoneGPT:构建专业领域的检索增强型智能问答系统
前端·数据库·后端
Hilaku2 小时前
Token已过期,我是如何实现无感刷新Token的?
前端·javascript·面试
小文刀6962 小时前
2025-35st-w-日常开发总结
前端