主题:关于servlet生命周期
时间:2018-09-25
内容:
(一)初始化阶段init()
默认web.xml,在服务器启动,第一次发送请求,服务器容器会实例化servlet对象,并执行servlet的初始化init()方法。实例化的对象是通过反射生成的。在这里初始化init()方法只会执行一次。
注意:可以通过更改web.xml配置让服务器启动的时候产生servlet对象。
如何让服务器容器,在启动的时候产生servlet对象?
代码:
//对象
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>t</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
//映射
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
说明:
- load-on-startup标记容器是否在启动的时候实例化并调用其init()方法的优先级。
- 它的值表示servlet应该被载入的顺序
- 当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet;
- 如果值小于0或未指定时,则表示只有在第一次请求的容器才在该servlet调用初始化函数
- 正值越小,servlet的优先级越高,应用启动时就越先加载。
(二)处理阶段service()
程序员比较关心的请求响应,在请求发送之后,在调用dopost()或者doget()方法,执行处理。
(三)销毁阶段destory()
在最后销毁servlet的时候调用此方法。