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

相关推荐
昔人'33 分钟前
`list-style-type: decimal-leading-zero;`在有序列表`<ol></ol>` 中将零添加到一位数前面
前端·javascript·html
岁月宁静6 小时前
深度定制:在 Vue 3.5 应用中集成流式 AI 写作助手的实践
前端·vue.js·人工智能
心易行者7 小时前
10天!前端用coze,后端用Trae IDE+Claude Code从0开始构建到平台上线
前端
saadiya~7 小时前
ECharts 实时数据平滑更新实践(含 WebSocket 模拟)
前端·javascript·echarts
fruge7 小时前
前端三驾马车(HTML/CSS/JS)核心概念深度解析
前端·css·html
百锦再7 小时前
Vue Scoped样式混淆问题详解与解决方案
java·前端·javascript·数据库·vue.js·学习·.net
烛阴7 小时前
Lua 模块的完整入门指南
前端·lua
浪里行舟8 小时前
国产OCR双雄对决?PaddleOCR-VL与DeepSeek-OCR全面解析
前端·后端
znhy@1239 小时前
CSS易忘属性
前端·css
瓜瓜怪兽亚9 小时前
前端基础知识---Ajax
前端·javascript·ajax