Servlet--生命周期

Servlet的生命周期
 什么是Servlet的生命周期
- Servlet容器如何创建Servlet对象,如何对该对象进行初始化处理,如何调用该对象的方法来处理请求,以及销毁该对象的整个过程.


 Servlet的生命周期分成哪几个阶段
 1)实例化
- 什么是实例化?

    容器调用Servlet的构造器,创建Servlet对象

- 什么时候实例化?

    1. 容器收到请求之后才创建相应的实例
    2. 容器启动后,立即创建相应的实例(需要额外的配置)

    
- 对于某个Srevlet,容器只会创建一个实例


 2)初始化
- 什么是初始化?

    容器调用Servlet对象的init方法.

- GenericServlet已经提供了init方法的实现

    会将容器传递过来的ServletConfig对象保存下来,并且提供了一个方法(getServletConfig)来获得该对象

    如果要扩展(实现自己的)init()(初始化)处理逻辑,只需要override GenericServlet 的init()方法

    实例化之后立刻初始化

- 初始化参数
    - 配置初始化参数

            <!-- 配置初始化参数 -->
            <init-param>
                <param-name>company</param-name>
                <param-value>钱多多</param-value>
            </init-param>
            <init-param>
                <param-name>address</param-name>
                <param-value>合肥</param-value>
            </init-param>

    - 调用ServletConfig提供的getInitParameter来读参数
 3)就绪(调用)
- 什么是就绪

    容器调用Servlet对象的service方法来处理请求

- HttpServlet已经提供了service方法的实现

    该方法依据请求类型(get/post)调用对应的doXxx()方法

    doXxx()方法只是抛出了一个异常
    
    开发人员有两个选择:

        1. override HttpServlet的doXxx()
        2. override HttpServlet的service()


 4)销毁

 相关的接口与类
 Servlet接口
- init(ServletConfig config)
- service(ServletRequest req,ServletResponse resp)
- destroy()

 GenericServlet抽象类
- 实现了Servlet接口中的部分方法(init,destroy)

 HttpServlet抽象类
- 继承了GenericServlet,实现了service()

猜你喜欢

转载自blog.csdn.net/ZUIHENderen46/article/details/82942973