其他分享
首页 > 其他分享> > Servlet 生命周期

Servlet 生命周期

作者:互联网

文章目录

Servlet 生命周期

一个 Servlet 的生命周期由实例化初始化提供服务销毁被回收 几个步骤组成

实例化

当用户通过浏览器输入一个路径,这个路径对应的 Servlet 被调用的时候,该 Servlet 就会被实例化。

LoginServlet 显式提供一个构造方法 LoginServlet(),然后通过浏览器访问,就可以观察到 LoginServlet 的构造方法被调用。无论访问多少次 LoginServletLoginServlet 的构造方法只会执行一次,所以 Servlet 是单实例的。

初始化

LoginServlet 继承了 HttpServlet,同时也继承了 init(ServletConfig) 方法。init 方法是一个实例方法,所以会在构造方法执行后执行。无论访问多少次 LoginSerlvetinit 初始化只会执行一次。

提供服务

接下来就是执行 service() 方法。通过浏览器传递过来的信息进行判断,是调用 doGet() 还是 doPost() 方法。也可以直接在 service() 中就会编写业务代码,

销毁

接着是销毁 destroy()。在如下几种情况下,会调用 destroy()

  1. 该 Servlet 所在的 web 应用重新启动。在 server.xml 中配置该 web 应用的时候用到了 <Context path="/" docBase="xxx的完整地址\\web" debug="0" reloadable="false" />。如果把 reloadable="false" 改为 reloadable="true" 就表示有任何类发生的更新,web 应用会自动重启。当 web 应用自动重启的时候,destroy() 方法就会被调用。
  2. 关闭 Tomcat 的时候 destroy() 方法会被调用,但是这个一般都发生的很快,不易被发现。

被回收

当该 Servlet 被销毁后,就满足垃圾回收的条件了。当下一次垃圾回收 GC 来临的时候,就有可能被回收。

标签:web,生命周期,构造方法,调用,实例,Servlet,LoginServlet
来源: https://blog.csdn.net/Pranuts_/article/details/94356186