Servlet生命周期

目录

一、概述:

1.实例化:

2. 初始化:

3.服务:

4 销毁:


一、概述:

        在通过一个 URL 路径发起对一个 Servlet 请求的过程中,其本质是在调用执行 Servlet 实例的 doXX() 方法。该 Servlet 实例创建和使用的过程,被称为Servlet的生命周期。整个生命周期包括:实例 化、初始化、服务、销毁。

1.实例化:

       根据 Servlet 请求的路径,查找该 Servlet 的实例。如果实例不存在,则通过调用构造方法,完成 Servlet 实例的创建。

public HomeServlet() {
        System.out.println("Servlet实例被创建");
    }

2. 初始化:

        通过该 Servlet 的实例,调用 init() 方法,执行初始化的逻辑。


//init()初始化阶段:Servlet容器加载Servlet,加载完成后,
//Servlet容器会创建一个Servlet实例并调用init()方法,init()方法只会调用一次
@Override
	public void init() throws ServletException {
		System.out.println("Servlet实例初始化");
	}

3.服务:

        通过该 Servlet 的实例,调用 service() 方法,如果子类没有重写该方 法,则调用HttpServlet父类的 service() 方法,在父类的该方法中进行请求方式 的判断,如果是 GET 请求,则调用 doGet() 方法;如果是 POST 请求,则调用 doPost() 方法; 如果子类重写 doXX() 方法,则调用子类重写后的 doXX() 方法; 如果子类没有重写 doXX() 方法,则调用父类的 doXX() 方法,在父类的方法实 现中,返回一个 405 状态码的错误页面。

//根据请求方式的不同调用不同的请求方法
//对于用户的Servlet请求,Servlet容器会创建一个特定于请求的ServletRequest和ServletResponse
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("heizi");
		String method = req.getMethod();
		System.out.println("请求方式:"+method);
		System.out.println(req.getRemoteHost());
	}

4 销毁:

        服务器关闭或重启时,会销毁所有的Servlet实例,会调用Servlet实例的 des troy() 方法。 405状态码:代表请求的方式服务器不提供

当web应用被终止,或者Servlet容器终止运行,或者Servlet重新装载Servlet新实例时,
//Servlet容器会调用Servlet的destroy()方法
@Override
	public void destroy() {
		System.out.println("Servlet实例被销毁");
	}

  • 19
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值