博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
servlet的生命周期
阅读量:4305 次
发布时间:2019-05-27

本文共 1285 字,大约阅读时间需要 4 分钟。

servlet的生命周期

1.什么是servlet的生命周期

  容器如何去创建servlet对象,如何对其进行初始化处理,如何调用其方法来处理请求,以及如何销毁该对象的整个过程。

2.分成哪几个阶段

  1)实例化

    a.什么是实例化?

      容器调用servlet的构造器,创建相应的对象。

    b.什么时候实例化? 

      情况1:容器收到请求之后。

      情况2:容器启动之后,立即创建。

           <load-on-startup>1</load-onstartup>

           参数值要求是一个大于等于0的整数,越小,优先级越高(即先创建)。

  注:

     容器只会创建一个实例。

  2)初始化

    a.什么是初始化

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

    b.GenericServlet的init方法是如何实现的

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

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

      只需要override GenericServlet提供的init()方法。

    d.初始化参数

      step1,配置

         <init-param>

           <param-name>company</param-name>

           <param-value>北京达内科技</param-value>

         </init-param>

      step2,读取

         String ServletConfig.getInitParameter(String paramName);

  3)就绪

    a.什么是就绪

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

    b.HttpServlet的service方法是如何实现的

      依据请求类型(get/post)调用对应的doXXX方法(doGet/doPost)。

  注:

     我们可以写一个servlet,继承HttpServlet,然后override doGet和doPost方法,或者也可以直接override service方法。

  4)销毁

    a.什么是销毁

      容器在删除servlet对象之前,会先调用该对象的destroy方法。

    b.该方法只会执行一次。

3.相关的几个类与接口

 1)Servlet接口

    init(ServletConfig config)

    service(ServletRequest req,SerletResponse res)

    destroy()

 2)GenericServlet抽象类

    实现了Servlet接口中的部分方法(init,destroy)

 3)HttpServlet抽象类

    继承GenericServlet抽象类,实现了service方法。

 4)ServletConfig接口

    String getInitParameter(String paraName);

 5)ServletRequest接口是HttpServletRequest的父接口,ServletResponse接口是HttpServletResponse的父接口。

附UML图:

你可能感兴趣的文章
LNMP 安装 thinkcmf提示404not found
查看>>
PHP empty、isset、innull的区别
查看>>
apache+nginx 实现动静分离
查看>>
通过Navicat远程连接MySQL配置
查看>>
phpstorm开发工具的设置用法
查看>>
Linux 系统挂载数据盘
查看>>
Git基础(三)--常见错误及解决方案
查看>>
Git(四) - 分支管理
查看>>
PHP Curl发送数据
查看>>
HTTP协议
查看>>
HTTPS
查看>>
git add . git add -u git add -A区别
查看>>
apache下虚拟域名配置
查看>>
session和cookie区别与联系
查看>>
PHP 实现笛卡尔积
查看>>
Laravel中的$loop
查看>>
CentOS7 重置root密码
查看>>
Centos安装Python3
查看>>
PHP批量插入
查看>>
laravel连接sql server 2008
查看>>