Servle生命周期

Servlet的生命周期

  • 服务器加载Servlet
  • 服务器创建Servlet实例
  • 调用Servlet实例的init()方法
  • 收到请求,调用service()方法
  • service()方法处理请求并将输出结果返回客户端
  • Servlet等待下一个请求或由服务器卸载
  • Servlet在服务器调用destroy()方法后被卸载

一、实例化

容器调用servlet的构造器,创建一个servlet对象。

注:容器在默认情况下,不管收到多少个请求,只会创建一个servlet对象。

什么时候实例化?

情况1: 收到请求之后,才进行实例化操作。

情况2: 容器在启动之后,事先创建好servlet对象。需要配置:

<load-on-startup>大于等于0的整数值越小,优先级越高(优先级高的会先被创建)。

二、初始化

容器在创建好servlet对象之后,会立即调用该对象的init方法。

Servlet如何实现自已的初始化处理逻辑

1、GenericServlet已经提供了init方法的实现(将容器传递进来的ServletConfig对象保存下来了)。

2、如果要实现自已的初始化处理逻辑,只需要override init()方法。

  

init方法只会执行一次。

初始化参数的使用

step1,使用<init-param>配置初始化参数,

比如:

<init-param>
	<param-name>company</param-name>
	<param-value>sun</param-value>
</init-param>

step2,

ServletConfig.getInitParameter("company");

三、就绪

容器收到请求之后,会调用servlet对象的service方法来处理请求。

如何实现自已的业务处理逻辑?

1、HttpServlet已经实现了service方法。

2、HttpServlet的service方法是这样实现的:

依据请求方式调用对应的doGet/doPost方法。

doGet/doPost需要开发人员去override。

3、实现业务处理逻辑?

方式一: override HttpServlet的doGet,doPost方法。

方式二: override HttpServlet的service方法。

四、销毁

容器在删除servlet对象(即Remove deployment)之前,会调用该对象的destroy方法。

destory方法只会执行一次。

destory方法一般用于释放资源。

猜你喜欢

转载自vincentweb.iteye.com/blog/2062392
今日推荐