Servlet生命周期表示Servlet从产生到毁灭的过程,一共分为四个阶段分别是:初始化阶段,响应客户请求阶段,终止阶段以及垃圾回收阶段Servlet生命周期就是指Servlet从产生到毁灭的整个过程,接下来将在文章中为大家详细介绍这个过程,具有一定的参考作用,希望对大家有所帮助。
![145b0163b41bfd5c729baf8bd5a60431.png](https://i-blog.csdnimg.cn/blog_migrate/3eb645ab4957d359a77b7e460997d903.jpeg)
Servlet生命周期
Servlet程序时运行在服务器端的java程序,生命周期收到web容器的控制。在Servlet产生到消亡的过程中一共分为以下四个阶段:
(1)构造方法:该方法只在创建servlet对象时调用并且只调用1次。目的在于证明servlet对象在tomcat服务器中是单实例的
(2)init方法:在初始化阶段使用,即在创建完servlet对象后就调用,且只调用1次。
(3)service方法:在响应客户请求阶段使用,即每次请求servlet时调用,调用n次。
(4)destroy方法:终止阶段调用,即在servlet对象销毁时调用。只调用1次。tomcat服务器停止或web应用重新部署时调用
![b6b42d9da6ad2ae23b8280752f0f7342.png](https://i-blog.csdnimg.cn/blog_migrate/e07aed6dacb4ab2f7523119841fd48c4.jpeg)
初始化阶段
init方法是在Servlet实例化之后调用init()方法,在整个servlet生命周期中,init()方法只执行一次。初始化阶段包括建立数据库连接,读取源文件信息等,如果初始化阶段失败,则Servlet将被直接卸载(注意,不是直接销毁,而是直接卸载)。
响应客户请求阶段
当有请求提交时,servlet调用service()方法进行处理。service() 方法是 Servlet 的核心,该方法可以多次调用,每次都是创建一个线程进行调用。对于service方法,一般不需要重写,因为在HttpServlet中实现,它会根据请求的方式,调用doGet/doPost也就是说service是用来转向的,所以我们一般写一个servlet,只需要重写doGet或者doPost就可以了。
终止阶段
当WEB容器关闭或检测到一个Servlet要从容器中被删除时,会自动调用destory()方法,释放实例所占用的资源。注意destory()方法只能调用一次。通常情况下Servlet容器停止,重新启动都会引起销毁Servlet对象的动作,重新部署项目也会引起Servlet对象的销毁同时会调用destroy方法。
垃圾回收
在销毁后,该实例将等待被垃圾收集器回收,如在被回收前再次使用此servlet,会重新用init()方法初始化
总结:以上就是本篇文章的全部内容了,希望对大家有所帮助。