zoukankan      html  css  js  c++  java
  • 关于servlet是在什么时候初始化的个人总结

    今天无意中看到一个博主的总结,总结的是servlet是在什么时候初始化的,并且附上了实例。但是由于那位博主的实例有问题,所以总结的也有误。这里我把我的体会写下来,分享给大家。

    java代码:

     1   @Override
     2     public void init(ServletConfig request) throws ServletException {
     3         System.out.println("TestServlet init ...");
     4         
     5     }
     6 
     7     @Override
     8     public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
     9         HttpServletRequest hsr = (HttpServletRequest) request;
    10         String servletPath = hsr.getServletPath();
    11         System.out.println("TestServlet service ...|| servletPath:" + servletPath);
    12         
    13     }

    web.xml配置:

    1     <servlet>
    2         <servlet-name>dispatcher</servlet-name>
    3         <servlet-class>com.leq.test.servlet.TestServlet</servlet-class>
    4     </servlet>
    5     <servlet-mapping>
    6         <servlet-name>dispatcher</servlet-name>
    7         <url-pattern>*.action</url-pattern>
    8     </servlet-mapping>

    场景1: 在启动Tomcat的时候,没有执行init方法;

        关闭Tomcat的时候,没有执行destroy方法。

    场景2: 在启动Tomcat的时候,没有执行init方法;

        在发送请求的时候,先执行init方法,后执行service方法。

        关闭Tomcat的时候,没有执行destroy方法。

    ------------------------------------------------------------华丽的分割线-------------------------------------------------------------------

    现在改变web.xml配置:

    1     <servlet>
    2         <servlet-name>dispatcher</servlet-name>
    3         <servlet-class>com.leq.test.servlet.TestServlet</servlet-class>
    4         <load-on-startup>0</load-on-startup>
    5     </servlet>
    6     <servlet-mapping>
    7         <servlet-name>dispatcher</servlet-name>
    8         <url-pattern>*.action</url-pattern>
    9     </servlet-mapping>

    java类代码不变。

    场景1: 在启动Tomcat的时候,执行了init方法;

        关闭Tomcat的时候,执行了destroy方法。

    总结:

    当web.xml中不配置load-on-startup属性,或者配置该属性且值为负数时,servlet在有请求的时候才会初始化。

    当load-on-startup属性值大于等于0的时候,servlet会在启动的时候就初始化。

    备注:1. load-on-startup属性值只能为整数。

         2. load-on-startup属性值大于等于0时,数值越小,优先级越高。

  • 相关阅读:
    软件工程(2019)第一次作业
    Coding.net主页地址链接
    解决Oracle 11g重建em时报错创建档案资料库时出错以及删除原有em时报监听程序未启动
    解决VirtualBox与锐捷网络冲突的问题
    王道数据结构复习(一)
    第二次结对编程—四则运算自动生成程序
    软件工程(2019)结对编程第一次作业
    软件工程(2019)第三次个人作业——求最大子段和(于VS2017下代码覆盖单元测试)
    软件工程(2019)第二次作业
    软件工程第一次作业
  • 原文地址:https://www.cnblogs.com/leqhome/p/5379837.html
Copyright © 2011-2022 走看看