ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

什么是DefaultServlet

2022-03-28 13:03:25  阅读:196  来源: 互联网

标签:xml web catalina default 什么 DefaultServlet servlet


什么是DefaultServlet
https://www.cnblogs.com/firstdream/p/9087739.html

 

缺省servlet:org.apache.catalina.servlets.DefaultServlet,作用是处理其他servlet处理不到的请求

我们知道,在我们工程的web.xml中,会配置servlet映射,但是有些访问无法找到映射,如一些静态图片,一些js文件等,那服务器是如何返回给客户端的呢?

要回答上面的问题,我们必须详细了解下DefaultServlet,下面我们看tomcat的官方解释。

1.什么是DefaultServlet?

默认的servlet是既服务于静态资源又服务于目录列表(如果允许目录列表的话)的servlet。

2.它被声明在哪里?

它在$CATALINA_HOME/conf/web.xml中被全局声明。默认形式的声明是这样的: $CATALINA_HOME/conf/web.xml

 

  1. <servlet>  
  2.         <servlet-name>default</servlet-name>  
  3.         <servlet-class>  
  4.           org.apache.catalina.servlets.DefaultServlet  
  5.         </servlet-class>  
  6.         <init-param>  
  7.             <param-name>debug</param-name>  
  8.             <param-value>0</param-value>  
  9.         </init-param>  
  10.         <init-param>  
  11.             <param-name>listings</param-name>  
  12.             <param-value>true</param-value>  
  13.         </init-param>  
  14.         <load-on-startup>1</load-on-startup>  
  15.     </servlet>  
  16.   
  17. ...  
  18.   
  19.     <servlet-mapping>  
  20.         <servlet-name>default</servlet-name>  
  21.         <url-pattern>/</url-pattern>  
  22.     </servlet-mapping>  
<servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>
          org.apache.catalina.servlets.DefaultServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>true</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
...
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

因此在默认的情况下,默认servlet在webapp启动时被装载,目录列表不可用,日志调试功能被关掉。

当访问的资源在工程的web.xml中没有Servlet映射时,我们如何加载资源的呢?

其实这就是一个io操作,DefaultServlet先根据客户端的访问路径,获取资源路径,然后找到服务器上资源绝对路径,再判断是否存在,如果不存在,则返回404或做其他处理,如果存在,则进行一个io读取操作返回给客户端。

标签:xml,web,catalina,default,什么,DefaultServlet,servlet
来源: https://www.cnblogs.com/sunny3158/p/16066570.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有