Servlet的生命周期
Servlet的生命周期概述
什么是生命周期
生命周期:一个对象从创建到销毁过程。
Servlet生命周期:Servlet对象从创建到销毁的过程。
Servlet中有init,service,destroy方法,这几个方法称为是Servlet生命周期相关的方法。
Servlet是在第一次被访问的时候会被实例化,只要Servlet一被实例化那么Servlet中的init方法就会执行(init只会执行一次)。任何一次从客户端发送来的请求,那么Servlet中的service方法(可多次执行)就会执行(在service方法的内部根据请求的方式不同调用不同doXXX方法)。当Servlet从服务器中移除或者服务器关闭的时候Servlet对象被销毁,里面的destroy方法就会执行,然后垃圾回收就会将其回收掉。
2 Servlet的启动时加载
为什么使用启动时加载
Servlet对象是第一次被访问的时候会被创建的,init方法就会执行。假设在init方法中做了一些比较耗时的操作(比如:加载了一些配置文件并且解析可能需要花费3秒钟)。第一个用户第一次访问这个Servlet的时候,需要等待3秒钟。如何使第一个用户在第一次访问的时候不需要花费这么长时间?
什么是启动时加载
Servlet默认是在第一次访问的时候创建的对象,现在通过一个配置将Servlet的实例化的过程放在服务器启动的时候(让服务器启动的时候创建Servlet的对象)。如果现在这样做那么之 花费的时间就会在服务器启动的时候一起花费掉了。对于用户来讲就不需要额外花费这个时间。
配置完成启动时加载:在web.xml文件对应(在设置名称和类全路径的那个servlet标签中)的<servlet>标签中。配置设置一个启动时自动加载的标签即可。标签是<load-on-startup>5</load-on-startup> 这也这个类文件就会在服务器启动的时候直接加载了。中间的整数是:整数越小,加载的优先级就越高,一般不能小于2.