简单来说:就是Servlet类在你的tomcat中什么时候被创建,什么时候被销毁
官方解说:
serlvet在tomcat中 是单例存在的, 只会创建一个对象 , 这个对象的生命周期, 存在三个Java方法的体现:
1. init : 当Servlet初始化完毕时, 自动执行 ! 默认情况下, 当用户第一次访问此Servlet时, 对象被创建, 后续访问重复利用此对象 !一般我们在这里进行一些资源的初始化操作 !
2. service : 当用户请求时, 此方法自动执行! 此方法每次执行 都在一个新的线程中 .
3. destroy : 当Servlet即将销毁时 , 自动执行 !当服务器被关闭时 或 应用被卸载时, 会销毁此对象 !一般用于释放一些资源
证明:
servlset2.java代码
package cn.xdl.demo;
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class Servlet2
*/
@WebServlet("/s3.1" )
public class Servlet2 extends HttpServlet {
public void init(ServletConfig config) throws ServletException {
System.out.println("servlet正在初始化!");
}
/**
* @see Servlet#destroy()
*/
public void destroy() {
System.out.println("servlet即将销毁!");
}
/**
*/
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("servle正在服务!");
response.getWriter().append("request Ok");
}
}
当我分别用不同的浏览器运行这个servlet2.java时,就会出现以下页面
初始化只会进行一次,之后会重复利用上面的初始化,印证上面官方所说的,初始化只会运行一次,之后会重复利用。
解释为什么要分别打开两个浏览器?
原因在于:分别打开两个浏览器,相当于换了个客户端,换了两台电脑
再次点击server,右键单击Tomcat服务器,点击停止(红色按钮),会出现以下页面
说明销毁也不是立马进行销毁的,按住停止键,就会调用方法destory(),进行销毁。