servlet的生命周期

时间:2022-04-10 10:13:42

servlet的生命周期相信大家在书上都有介绍,我就不再抄录书上的内容了,下面我用写程序的方式让大家理解一下servlet的生命周期。

myeclipse中,在代码编辑区右键出现的菜单中有很多快捷工具,override/implements methods选项能够显示该类和所继承的父类、根父类的方法。

servlet的生命周期


任何类都继承Object类,HttpServlet继承GenericServlet,在GenericServlet中,实现了servlet初始化和销毁的方法。

package org.csu.coderlee.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;

public class ServletLife extends HttpServlet{

	@Override
	public void service(ServletRequest request, ServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("servlet is processing");
	}

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		System.out.println("sesrvlet destroy");
	}

	@Override
	public void init() throws ServletException {
		// TODO Auto-generated method stub
		System.out.println("servlet inits");
	}

	
}

在上述类中,覆盖了GenericServlet的init()和destroy()两个方法,这样在打开tomcat服务器,浏览器中请求该servlet的时候,首先会调用init方法初始化servlet,然后调用service方法,实现该servlet的功能,在我们关闭tomcat服务器的时候,destroy方法会被调用销毁该servlet。

首先会打印 servlet init,接下来会打印servlet is processing,在浏览器再次输出该servlet请求的时候,会输出seevlet is processing,而不会再次出现servlet init,这里就提现出这样的一个知识,servlet只有第一次被请求的时候才会被初始化,接下来无论你多少次请求,该servlet都不会被初始化。

接下来我们关闭tomcat服务器,在console窗口中会出现servlet destroy,该servlet成功被销毁。