美文网首页
Tomcat默认DefaultServlet

Tomcat默认DefaultServlet

作者: 贪睡的企鹅 | 来源:发表于2021-03-28 15:11 被阅读0次

默认 web.xml

Tomcat$CATALINA_BASE/conf/web.xml中默认定义了两个Servlet DefaultServlet 和 JspServlet,

Tomcat$CATALINA_BASE/conf/web.xml为Web应用的默认部署描述文件,因此这两个Servlet会默认存在所有Web应用容器中。

DefaultServlet

配置

    <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>false</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>

职能

  • DefaultServlet为默认的Servlet,当客户端请求不能匹配其他所有Servlet时,将由Servlet处理.
  • DefaultServlet主要用于处理静态资源,如HTML、图片、CSS、JS文件等,而且为了提升服务器性能,Tomcat对访问文件进行缓存。按照默认配置,客户端请求路径与资源的物理路径是一致的。
  • 如果我们希望修改DefaultServlet的映射路径,只需要将Web应用中web.xml配置进行如下配置 ,
    • 修改DefaultServlet url-pattern改为“/static/*”
    • 修改后DefaultServlet只会处理“/static/*“ 目录下静态资源
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/static/*</url-pattern>
    </servlet-mapping>
  • 如果我们希望自定义Servlet映射路径为"/" ,只需要将Web应用中web.xml配置进行如下配置
  • DispatcherServlet拦截“/”,拦截了所有的请求
  • DefaultServlet 失效,会导致.js,*.gif静态资源的访问也会被DispatcherServlet 拦截了,无法访问静态资源
  • 如果期望DefaultServlet 拦截静态资源需要给DefaultServlet 配置一个新的映射路径
    <servlet>
        <servlet-name>SpringMvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>SpringMvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/static/*</url-pattern>
    </servlet-mapping>

相关文章

网友评论

      本文标题:Tomcat默认DefaultServlet

      本文链接:https://www.haomeiwen.com/subject/xgvphltx.html