各种WEB服务器自带的默认Servlet名称

时间:2021-08-18 20:08:51
Tomcat, Jetty, JBoss, and GlassFish 自带的默认Servlet的名字 -- "default"
Google App Engine 自带的 默认Servlet的名字 -- "_ah_default"
Resin 自带的 默认Servlet的名字 -- "resin-file"
WebLogic 自带的 默认Servlet的名字  -- "FileServlet"
WebSphere  自带的 默认Servlet的名字 -- "SimpleFileServlet" 

知道后有何用处?
如果web.xml中配置了某个servlet拦截了所有的请求,那么一些静态资源的访问如jpg,css,js也会被处理。
如果不希望这些请求被你配置的servlet处理那么可以把服务器自带的默认servlet先去拦截掉这些资源,但是要保证默认的servelt写在你配置的servelt前面。

<servlet-mapping>     
    <servlet-name>default</servlet-name>    
    <url-pattern>*.jpg</url-pattern>       
</servlet-mapping>      
<servlet-mapping>         
    <servlet-name>default</servlet-name>      
    <url-pattern>*.js</url-pattern>      
</servlet-mapping>      
<servlet-mapping>          
    <servlet-name>default</servlet-name>         
    <url-pattern>*.css</url-pattern>        
</servlet-mapping>   

 在tomcat中,什么是DefaultServlet?他的功能是什么

首先所有的请求进入tomcat,都会流经servlet,如果没有匹配到任何应用指定的servlet,那么就会流到默认的servlet

默认的servlet是配置在$catalina/conf/web.xml里面的

各种WEB服务器自带的默认Servlet名称

各种WEB服务器自带的默认Servlet名称

 

应用的一些静态资源就可以交给该servlet去处理,以减轻服务器压力,节省资源!如果你用SpringMVC。就会有感觉,当你配置
org.springframework.web.servlet.DispatcherServlet拦截所有请求时,对静态资源的请求也会被拦截,这时你就可以把静态资源交给DefaultServlet来处理!