Servlet生命周期详解

  1. 1. Servlet的生命周期:

Servlet的生命周期:

  1. 客户端向服务器发送请求

  2. Servlet容器负责解析请求,并创建Servlet实例 —— 对象的创建

  3. Servlet容器调用Servlet的init方法 —— 对象的初始化

  4. Servlet容器调用Servlet的service方法 —— 对象业务的执行

  5. Servlet容器将Servlet的响应结果返回客户端

  6. 当Servlet重新加载或容器重启时,会调用Servlet的destroy方法 —— 对象的销毁

注意: Servlet属于单例模式,对象的创建延迟在用户第一次访问的时候.

代码示例:

package com.servlet;  

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class AppServlet extends HttpServlet {
public AppServlet() {
System.out.println("abc servlet 对象已经创建......");
}

@Override
public void init() throws ServletException {
System.out.println("abc servlet 对象资源初始化......");
}

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("abc servlet doGet......");
}

@Override
public void destroy() {
System.out.println("abc servlet 对象资源销毁......");
}
}

在web.xml中配置

<servlet>  
<servlet-name>abc</servlet-name>
<servlet-class>com.servlet.AppServlet</servlet-class>
<!--数字大于0 没访问就会创建,如果填写负数 和默认一样 访问时才会创建 -->
<load-on-startup>5</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>abc</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>

详细过程: