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时,数值越小,优先级越高。

  • 相关阅读:
    集合、序列、字典
    测验2: Python基础语法(上) (第4周)
    geckodriver问题
    转:Loadrunner添加服务器监控
    转:JMeter监控内存及CPU ——plugin插件监控被测系统资源方法
    星号三角形
    天天向上的力量 III
    平方值格式化
    同符号数学运算
    JMeter 连接MySQL
  • 原文地址:https://www.cnblogs.com/leqhome/p/5379837.html
Copyright © 2011-2022 走看看