Servlet生命周期

Servlet的生命周期是指 servlet 从出现到销毁的过程。

主要分为以下四个阶段

加载类并实例化(为对象分配空间) ——> 初始化(为对象属性赋值) ——> 服务service (请求响应) ——> 销毁

1.实例化:调用构造方法,创建 Servlet 的实例

 当容器启动或首次请求某个 Servlet 时,容器会读取 web.xml (配置load-on-startup=1,默认为0)或 @WebServlet 中的配置信息,对指定的 Servlet 进行加载。加载成功后,容器会通过反射对 Servlet 进行实例化。

@WebServlet("/home.do")
public class HomeServlet extends HttpServlet {
	public HomeServlet() {
		System.out.println("1.HomeServlet实例被创建");
	}

2.初始化:执行init()方法,完成初始化逻辑

	@Override
	public void init() throws ServletException {
		System.out.println("2.HomeServlet实例初始化");
	}

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

初始化完成后调取service()方法,由service()判断客户端的请求方式。
3.1 如果是get请求,则执行doGet()方法。
3.2 如果是post请求,则执行doPost()。
3.3 处理方法完成后会作出相应的结果返回给客户端,单次请求处理完毕。

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("service.....");
	}
    
    @Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("HomeServlet被Get请求到了");
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("HomeServlet被POST请求到了");
	}

4.销毁:当服务器关闭,重启或移除 Servlet 实例时Servlet调取destroy()方法进行销毁,宣告生命周期的结束。

	@Override
	public void destroy() {
		System.out.println("4.HomeServlet实例被销毁");
	}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值