Tomcat默认DefaultServlet

默认 web.xml

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

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

DefaultServlet

配置

    
        default
        org.apache.catalina.servlets.DefaultServlet
        
            debug
            0
        
        
            listings
            false
        
        1
    

    
            default
            /
    

职能

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

    
        SpringMvc
        /
    

    
        default
        /static/*
    

你可能感兴趣的:(Tomcat默认DefaultServlet)