Servlet的生命周期分为四个部分:
一、创建Servlet实列对象(实例化)
在有一个请求请求当前Servlet时,如果该Servlet的实列对象不存在,则通过调用构方法,创建该Servlet的实列对象
二、初始化
通过第一步创建的实列对象,调用父类的init()方法,执行初始化的逻辑,我们也可重写父类的init()方法来实现我们自己的逻辑
三、服务
通过实例调用HttpServlet父类的service()方法
service()方法中,会根据请求的方式(get或post)的不同
调用子类重写的doGet()或doPost()方法
如果子类没有重写,则响应405
四、销毁
1.服务器重启
2.服务器关闭
3.超出过期时间
以上都会调用Servlet实例的destroy()
方法,使当前的Servlet销毁。
例:HomeSevlet
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33package com.wzb.web.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HomeServlet extends HttpServlet { // 1.实列化 public HomeServlet() { System.out.println("1.HomeServlet实例化"); } // 2.初始化 // 重写HttpServlet父类的init()方法 @Override public void init() throws ServletException { System.out.println("2.HomeServlet初始化"); } // 3.服务 // 通过实例调用HttpServlet父类的service()方法 // service()方法中,会根据请求的方式(get或post)的不同 // 调用子类重写的doGet()或doPost()方法 // 如果子类没有重写,则响应405 // 根据请求方式的不同,需要调用不同的请求方法 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("HomeServlet被请求到!"); } // 4.销毁 @Override public void destroy() { System.out.println("4.HomeServlet实例被销毁"); } }
会依次输出:
1.HomeServlet实列化
2.HomeServlet初始化
4.HomeServlet实例被销毁
最后
以上就是健忘蓝天最近收集整理的关于Java Servlet的生命周期的全部内容,更多相关Java内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复