版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_29331365/article/details/91437634
package com.demo.d_life;
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 的生命周期:
* servlet 类什么时候被创建,什么时候调用什么方法,什么时候销毁;
*
* 普通类对象由我们自己使用 new 关键字创建,而 Servlet 的生命周期由 tomcat 服务器控制。
*/
@WebServlet("/LifeDemo1")
@SuppressWarnings("serial")
public class LifeDemo1 extends HttpServlet {
/*
* 1、构造方法:创建 Servlet 对象的时候调用。默认情况下,第一次访问 servlet 的时候创建 servlet 对象;
* 只调用一次,说明 servlet 对象在 tomcat 服务器中是单实例的。
*/
public LifeDemo1(){
System.out.println("1、构造方法被调用了");
}
/*
* 2、init 方法:创建完 servlet 对象的时候调用;只调用一次。
*/
@Override
public void init(ServletConfig config) throws ServletException {
System.out.println("2、init 方法被调用了");
}
/*
* 3、service 方法:每次发出请求的时候调用;可调用多次,说明 servlet 是多线程的。
*/
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("3、service 方法被调用了");
}
/*
* 4、destroy 方法:销毁 servlet 对象的时候调用。
* 停止服务器,或者重新部署 web 应用时销毁 servlet 对象。只调用一次。
*/
@Override
public void destroy() {
System.out.println("4、destroy 方法被调用了");
}
}