tomcat defaultServlet

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

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

如下面贴出来所示(由于贴的内容太多了,我把注释去掉了,其实注释是相当重要的):

 

Xml代码   收藏代码
  1.   <servlet>  
  2.       <servlet-name>default</servlet-name>  
  3.       <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>  
  4.       <init-param>  
  5.           <param-name>debug</param-name>  
  6.           <param-value>0</param-value>  
  7.       </init-param>  
  8.       <init-param>  
  9.           <param-name>listings</param-name>  
  10.           <param-value>false</param-value>  
  11.       </init-param>  
  12.       <load-on-startup>1</load-on-startup>  
  13.   </servlet>  
  14.   
  15.   
  16.   <servlet>  
  17.       <servlet-name>jsp</servlet-name>  
  18.       <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>  
  19.       <init-param>  
  20.           <param-name>fork</param-name>  
  21.           <param-value>false</param-value>  
  22.       </init-param>  
  23.       <init-param>  
  24.           <param-name>xpoweredBy</param-name>  
  25.           <param-value>false</param-value>  
  26.       </init-param>  
  27.       <load-on-startup>3</load-on-startup>  
  28.   </servlet>  
  29. <servlet-mapping>  
  30.       <servlet-name>jsp</servlet-name>  
  31.       <url-pattern>*.jsp</url-pattern>  
  32.   </servlet-mapping>  
  33.   
  34.   <servlet-mapping>  
  35.       <servlet-name>jsp</servlet-name>  
  36.       <url-pattern>*.jspx</url-pattern>  
  37.   </servlet-mapping>  

tomcat初始化一个context的时候就会初始化context下面所有的 servlet,包括这个默认的servlet。

如图:

图待添加

 

它就是从servletContext里面加载的资源中去取出需要的资源,然后加载进来,并且判断相应的mime类型设置不同的HTTP head,然后输出到页面上。内容还是挺简单的。

其中还有mime的mapping:

Xml代码   收藏代码
    1.  <mime-mapping>  
    2.         <extension>abs</extension>  
    3.         <mime-type>audio/x-mpeg</mime-type>  
    4.     </mime-mapping>  
    5.     <mime-mapping>  
    6.         <extension>ai</extension>  
    7.         <mime-type>application/postscript</mime-type>  
    8.     </mime-mapping>  
    9.     <mime-mapping>  
    10.         <extension>aif</extension>  
    11.         <mime-type>audio/x-aiff</mime-type>  
    12.     </mime-mapping>  
    13.     <mime-mapping>  
    14.         <extension>aifc</extension>  
    15.         <mime-type>audio/x-aiff</mime-type>  
    16.     </mime-mapping>  
    17.     <mime-mapping>  
    18.         <extension>aiff</extension>  
    19.         <mime-type>audio/x-aiff</mime-type>  
    20.     </mime-mapping>  
    21.     <mime-mapping>  
    22.         <extension>aim</extension>  
    23.         <mime-type>application/x-aim</mime-type>  
    24.     </mime-mapping>  
    25.     <mime-mapping>  
    26.         <extension>art</extension>  
    27.         <mime-type>image/x-jg</mime-type>  
    28.     </mime-mapping>……后面太多贴不出来了  

转载于:https://www.cnblogs.com/1995hxt/p/5692159.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: default-servlet-handler是Spring MVC框架中的一个处理器,用于处理静态资源请求。当请求的URL没有匹配到任何一个Controller时,default-servlet-handler会将请求转发给Servlet容器中的默认Servlet来处理,例如Tomcat中的DefaultServlet。这样可以避免在Controller中处理静态资源请求,提高系统性能。 ### 回答2: default-servlet-handler是Spring MVC框架用于处理静态资源的默认处理器,它是一个处理器映射器和处理器适配器的组合。在Spring MVC中,当发送来自客户端的静态文件请求时,会使用该default-servlet-handler默认处理器来处理这些请求。 Spring MVC的默认处理器使用了Servlet容器的默认Servlet来处理静态资源的请求。这些静态资源可以是图片、CSS文件、JavaScript文件或HTML文件等。当请求的资源在内存中不存在时,default-servlet-handler会把请求转发到Servlet容器里的默认Servlet,由其来处理,并把处理结果返回给客户端。这样做可以减轻Spring MVC本身的负担,提高整个应用程序的性能。 使用default-servlet-handler,我们可以不必为所有静态资源创建控制器,以提高应用程序启动和运行速度。这就是说,当我们的控制器无法处理一个请求时,Spring MVC会检查是否有默认的Servlet来处理这个请求,并把这个请求转给该Servlet。所以,我们可以通过在web.xml文件中注册Servlet来实现对不同路径的映射和处理。 另外需要注意的是,default-servlet-handler在XML配置文件中的配置代码如下: ```xml <mvc:default-servlet-handler/> ``` 在注解配置中的代码如下: ```java @Configuration @EnableWebMvc public class AppConfig implements WebMvcConfigurer { @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } } ``` 以上就是default-servlet-handler的基本使用和配置方法。如果在Spring MVC框架中需要处理静态资源并提高应用程序的性能,这个处理器的使用是非常值得推荐的。 ### 回答3: default-servlet-handler是Spring框架中的一个组件,它是用来处理静态资源(如图片、CSS文件、JavaScript文件等)的一个处理器。在Web应用程序中,通常会有很多静态资源需要提供给客户端访问,如何高效地管理这些资源并提供访问? 在传统的Web应用程序中,通常会将静态资源放在Web服务器的某个目录下,如Tomcat中的【webapps】目录。Web服务器收到客户端请求后,根据URL去服务器中查找对应的文件并返回给客户端。但是,这种方式存在一个问题:每次静态资源的修改都需要重启Web服务器,影响Web应用程序的正常运行。 而Spring框架中提供了default-servlet-handler能够解决这个问题,它会去解析Web应用程序中的资源和请求路径,并将请求转发到Web服务器的默认Servlet来处理。这样,Web服务器就不需要重启就可实时地提供静态资源。 default-servlet-handler的原理是将对静态资源的请求交给Web服务器中的默认Servlet来处理,而不是交给DispatcherServlet来处理。需要注意的是,default-servlet-handler只是用来处理静态资源,如果请求的URL路径与某些动态请求有冲突,则会由DispatcherServlet来处理动态请求。 在配置default-servlet-handler时,需要为该处理器指定一个URL模式,用于匹配静态资源的请求路径。例如: <mvc:default-servlet-handler /> 这样配置就会将所有静态资源请求交给Web服务器默认的Servlet来处理。 综上所述,default-servlet-handler是Spring框架中用于处理静态资源的重要组件,它能够高效地提供静态资源访问的服务,降低Web服务器重启频率,提高Web应用程序的稳定性和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值