servlet生命周期是指Servlet对象的创建,Servlet对象的初始化,Servlet对象的执行,及Servlet对象被销毁的整个过程。
servlet生命周期图:
(1) Servlet接口中的方法
-
init(ServletConfig config)
执行时间:servlet对象创建时
ServletConfig :代表的是该servlet对象的配置信息 -
service(ServletRequest request,ServletResponse response)
执行时间:每次请求都会执行
ServletRequest :代表请求 ServletRequest 内部封装的是http请求的信息
ServletResponse :代表响应 要封装的是响应的信息 -
destroy() 何时执行:servlet销毁的时候执行
(2)Servlet的生命周期(面试题)
-
1)Servlet何时创建
默认第一次访问servlet时创建该对象 -
Servlet何时销毁
服务器关闭servlet就销毁了 -
每次访问必然执行的方法
service(ServletRequest req, ServletResponse res)方法,且每次执行service会创建1和ServletRequest对象和ServletResponse 对象。
tomcat启动时创建servlet实例
在tomcat启动时,默认不会创建servlet实例,如果想要让tomcat在启动时创建servlet实例的话,只需要在配置文件web.xml中添加load-on-startup标签即可。
添加load-on-startup的作用是,标记是否在 Tomcat启动时创建并初始化这个 Servlet实例。它的值必须是一个整数。
添加load-on-startup的作用是,标记是否在 Tomcat启动时创建并初始化这个 Servlet实例。它的值必须是一个整数。(注意load-on-startup的顺序,放下面)
-
当值大于等于 0 时,表示容器在启动时就加载并初始化这个 Servlet,数值越小,该 Servlet的优先级就越高,其被创建的也就越早(一般会从中间数字开始);
-
当值相同时,容器会自己选择创建顺序。
servlet整个访问过程