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

  • 相关阅读:
    #ifndef/#define/#endif使用详解
    快速排序
    一分钟看懂Docker的网络模式和跨主机通信
    Docker:网络模式详解
    Docker中使用Tomcat并部署war工程
    Docker学习笔记--Docker 启动nginx实例挂载目录权限不够(转)
    Centos 7 如何卸载docker
    Centos-7修改yum源为国内的yum源
    centOS 7镜像文件下载
    Python 垃圾回收机制(转)
  • 原文地址:https://www.cnblogs.com/leqhome/p/5379837.html
Copyright © 2011-2022 走看看