JavaWeb——Servlet——Servlet的生命周期
导语:所谓Servlet的生命周期,就是说Servlet什么时候被创建的?什么时候被销毁的?从被创建到被销毁它又经历了哪些过程呢?
原理:
Servlet底层的生命周期分为5个阶段来执行
1、装载web.xml
web.xml文件中对Servlet进行了声明,并且绑定了url,tomcat启动时会自动扫描web.xml文件,从而知道了Servlet的存在并将其解析。
2、创建Servlet对象,执行构造函数
当我们第一次去访问url时,tomcat就会进行创建Servlet对象,默认执行构造函数
3、执行init()初始化方法
Servlet执行自身默认存在的初始化方法init(),进行初始化,如此Servlet对象就创建成功了。
4、执行提供服务、实现业务操作的service()等方法
执行service()、doGet()、doPost()等方法提供的服务。
5、执行destroy()销毁方法
如果tomcat重启或者关闭,Servlet就会自动执行destroy()销毁方法。
【案例】
需求:定义一个Servlet,做好相关配置,体验Servlet生命周期的过程
代码实现
web.xml
启动tomcat,控制台不会输出我们编写好的输出语句,原因很简单,因为这个时候并没创建出Servlet对象
开始在地址栏中第一次输入url进行访问,此时控制台输出了内容,也就意味着对象创建成功了
之后进行多次访问时,只会执行service()方法,而不会再创建新的对象了即不会执行其他的方法,所以在Servlet全局中有且只有一个Servlet对象,它会对后续的请求进行处理。
当我们关闭或者重启服务器时,这个Servlet就会自动执行destroy()方法,从而被销毁
注意这里的关闭服务器指的是tomcat而不是直接点击eclipse中的关闭按钮,需要点击shoutdown.bat才能执行destroy()方法,或者重新加载文件也可以执行destroy()方法。
执行了销毁方法之后,如果我们再次重启服务器,访问url它就会重新创建一个新的对象并且执行业务
总结:Servlet的生命周期,可以分为五个阶段,首先tomcat会扫描web.xml文件,知道了Servlet的存在,会将其解析。然后当我们第一次访问url时,tomcat就会进行创建Servlet对象,默认执行构造函数。接着Servlet执行自身默认存在的初始化方法init(),对Servlet进行初始化,如此Servlet对象就创建成功了,然后再通过执行service()、doGet()、doPost()等方法提供服务。当关闭或者重启tomcat时,这个Servlet对象就会被销毁,继续重启服务器访问url时,就会创建一个新的Servlet对象。
要点
在Servlet被创建到被销毁的过程中,有且只有一个Servlet对象,多次请求只会重复执行诸如service()、doGet()、doPost()等提供业务的方法,其余的方法在整个生命周期中只会被执行一次。