Servlet的生命周期是交给Servers的,init()相当于人刚出生的时候,一切都是最初的。在服务器启动的时候调用,init()方法是程序中的初始化方法;而service()是在init()执行后执行的,它就相当于人活着的时候,进行一定的方法操作。最后destroy()方法,就相当于人的死亡,它会结束掉Servlet的生命,是在服务器停止是调用的,即服务器停止执行destroy()方法,servlet结束。
下面用代码来解释上面的内容:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//该类继承于HttpServlet
@SuppressWarnings("serial")
public class ServletLife extends HttpServlet{
//重写父类的init(),即servlet的生命开始
@Override
public void init() throws ServletException {
System.out.println("servlet出生------servlet初始化");
}
//重写父类的service()方法,这里重写的是传入HttpServletRequest的service方法
//这里表示servlet执行的操作
@Override
protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
System.out.println("servlet活着------servlet运行");
}
//重写父类的destroy()方法,servlet死亡
@Override
public void destroy() {
System.out.println("servlet死亡-------servlet销毁");
}
}
运行结果,如图:
这里需要注意的是:停止服务器是需要从外部停止。比如我用的Tomcat服务器,就需要从Tomcat下的bin目录中的shutdown.bat关闭。
正在学习中,以上只是本人自己的理解,若有错误希望大家多多指点。
谢谢