每个Servlet都有自己的生命周期,Servlet的生命周期由web服务器来维护。

Servlet会在服务器启动或者是第一次请求该Servlet的时候开始的它的生命周期,在服务器结束的时候,会结束它的生命周期。

Servlet的生命周期是通过Servlet接口下的三个方法来体现出来的。

1.public void destroy();

2.public void service(ServletRequest req, ServletResponse res) throws ServletException, java.io.IOException;

3.public void init(ServletConfig config) throws ServletException;(Servlet实例被创建的时候会调用这个方法)

Servlet的生命周期:

1.默认情况下,客户端第一次请求Servlet的时候,Tomcat(服务器)会初始化一个Servlet对象,Servlet对象被初始化的时候就会调用init ()方法;(还有一种方式来初始化一个Servlet对象:服务器启动的时候就会初始化一个Servlet对象,但是有一个前提,就是需要在Servlet的配置文件里添加一个(<load-on-startup> 1</load-on-start>)属性,它有两个值:0和1。 将值设置成1:表示Tomcat服务器启动时就是会初始化一个Servlet对象。通俗的说就是Tomcat启动的时候就会加载Servlet,而设置0,表名:只有第客户端或浏览器第一次访问Servlet的时候Servlet才会被加载)Servlet对象并不是由我们创建的而是由Web容器创建的。Servlet实例只会被创建一次;

2.每当客户端发送请求的时候服务器会调用Service()方法来处理客户端发送的请求;

3.关闭web服务器的时候,Servlet对象就会被销毁,当Servlet对象被销毁的时候,就会调用destroy()方法;(关闭web容器的时候会执行destroy()方法)

总结:(默认情况下,当我们第一次访问Servet的时候,Web服务器会实例化一个Servlet对象,init()方法就是在Servlet对象被创建的时候调用。客户端发送请求的时候,web服务器会通过调用service()方法l来处理这个请求。destroy()方法它是在Servlet对象被销毁的时候调用,比如说,我们关闭了web服务器,这个时候就会执行destroy方法())

Servlet的实例不是由我们创建,Servlet的方法也不是由我们来调用,这一切都是由tomcat (Web服务器)来完成的。

再次声明:

destroyservice i、init,只有这三个方法是Servlet生命周期的方法,也就是说,生命周期的方法会在Tomcat在不同的时间点调用,而其他的方法不会被tomcat调用,如果你在Servlet中添加了其他的方法,那么tomcat也不会去调用它们的,但你可以让生命周期方法去掉用自己写的方法就可以了.

如有不足,欢迎指正 谢谢!