java—servlet 的生命周期
2021/7/31 17:07:40
本文主要是介绍java—servlet 的生命周期,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.Servlet的生命周期
Servlet没有main()方法,不能独立运行,它的运行完全由Servlet引擎来控制和调度。所谓生命周期,指的是servlet容器何时创建servlet实例、何时调用其方法进行请求的处理、何时并销毁其实例的整个过程。
- 实例和初始化时机
当请求到达容器时,容器查找该servlet对象是否存在,如果不存在,则会创建实例并进行初始化
- 就绪/调用/服务阶段
有请求到达容器,容器调用servlet对象的service()方法,处理请求的方法在整个生命周期中可以被多次调用;HttpServlet的service()方法,会依据请求方式来调用doGet()或者doPost()方法。但是,这两个do方法默认情况下,会抛出异常,需要子类去override。
- 销毁时机
当容器关闭时(应用程序停止时),会将程序中的Servlet 实例进行销毁。
上述的生命周期可以通过Servlet中的生命周期方法来观察。在Servlet 中有三个生命周期方法,不由用户手动调用,而是在特定的时机有容器自动调用,观察这三个生命周期方法即可观察到Servlet的生命周期。
2.三个生命周期3个方法
init方法,在Servlet实例创建之后执行(证明该Servlet有实例创建了)
public void init(servletconfig config) throws serv1etException { system.out.println("实例创建了...");
service方法,每次有请求到达某个Servlet方法时执行,用来处理请求(证明该Servlet进行服务了)
protected void service(HttpservletRequest req,HttpservletResponse resp) throws servletException,IOException { system.out.println("服务调用了...");
destroy方法,Servlet实例销毁时执行(证明该Servlet的实例被销毁了)
public void destroyO { system.out.print1n("实例销毁了...");}
Servlet的生命周期,简单的概括这就分为四步: servlet类加载–>实例化–>服务–>销毁。
- Web Client向Servlet容器(Tomcat)发出Http请求
- Servlet容器接收web Client的请求
- Servlet容器创建壬个HttpServletRequest对象,将Web Client请求的信息封装到这个对象中
- Servlet容器创建一个HttpServletResponse对象
- Servlet容器调HttpServlet对象service方法,把Request与Response作为参数,传给HttpServlet6.HttpServlet 调用HttpServletRequest对象的有关方法,获取 Http请求信息
具体代码实现
package com.liu.servlet; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/ser02") public class servlet02 extends HttpServlet { /** * 就绪/服务方法 * 用来处理请求的 * 系统方法,服务器自动调用 * 当有请求到达ServLet时,就会调用该方法 * 该方法可以多次调用 * @param req * @param resp * @throws ServletException * @throws IOException */ @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("servlet被调用了"); } /** * 销毁方法 * 系统方法,服务器自动调用 * 当服务器关闭,或者应用程序停止 * 执行一次 */ @Override public void destroy() { System.out.println("servlet被销毁了"); } /** * 初始化方法,系统自动调用 * 当请求到达ServLet容器时,ServLet容器会判断i该ervLet对象是否存在,如果不存在,则创建实例并初始化 * 该方法只会执行一次 * @throws ServletException */ @Override public void init() throws ServletException { System.out.println("servlet被创建了"); } }
打开服务并访问浏览器时
关闭服务时
这篇关于java—servlet 的生命周期的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-102025 蛇年,J 人直播带货内容审核团队必备的办公软件有哪 6 款?
- 2025-01-10高效运营背后的支柱:文档管理优化指南
- 2025-01-10年末压力山大?试试优化你的文档管理
- 2025-01-10跨部门协作中的进度追踪重要性解析
- 2025-01-10总结 JavaScript 中的变体函数调用方式
- 2025-01-10HR团队如何通过数据驱动提升管理效率?6个策略
- 2025-01-10WBS实战指南:如何一步步构建高效项目管理框架?
- 2025-01-10实现精准执行:团队协作新方法
- 2025-01-10如何使用工具提升活动策划团队的工作效率?几个必备工具推荐
- 2025-01-10WiX 标签使用介绍:打造专业安装程序的利器