Servlet生命周期
Servlet生命周期:从创建到销毁的整个过程,主要有以下三个过程:
- 当请求到达web容器时,容器先判断该servlet对象是否存在,如果不存在,则会创建实例并初始化。
- 对象存在,则容器根据请求调用对应的servlet对象处理请求。
- 容器关闭,容器中所有的servlet对象都将被销毁。
以上三个过程分别对应init()
,service
,destroy
三个方法,举例如下:
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet("/life")
public class Servlet_life implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("init"); //初始化
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { //处理请求
System.out.println("service");
}
@Override
public void destroy() { //销毁
System.out.println("destroy");
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public String getServletInfo() {
return null;
}
}
- 启动tomcat,没有发送请求时,控制台如下:
- 发送请求时:
- 再次发送请求时:
- 关闭程序时:
通过上述案例,总结如下:
init()
和destroy
方法只会执行一次。- 同一个类只会创建一个对象。
- 第一次发送请求时才会实例化
servlet对象
并初始化。