Java Servlet的生命周期

Servlet的生命周期分为四个部分:

一、创建Servlet实列对象(实例化)

在有一个请求请求当前Servlet时,如果该Servlet的实列对象不存在,则通过调用构方法,创建该Servlet的实列对象

二、初始化

通过第一步创建的实列对象,调用父类的init()方法,执行初始化的逻辑,我们也可重写父类的init()方法来实现我们自己的逻辑

三、服务


通过实例调用HttpServlet父类的service()方法
service()方法中,会根据请求的方式(get或post)的不同
调用子类重写的doGet()或doPost()方法
如果子类没有重写,则响应405

四、销毁

1.服务器重启

2.服务器关闭

3.超出过期时间

以上都会调用Servlet实例的destroy()方法,使当前的Servlet销毁。

例:HomeSevlet

package 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实例被销毁

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值