1、详解DefaultServlet与JspServlet
参考博客-->详解DefaultServlet与JspServlet
1.1DefaultServlet小结
当服务端收到关于Servlet的请求之后交由自定义Servlet处理。
当服务端收到关于静态资源的请求时交由DefaultServlet处理。
当自定义Servlet的< url-pattern ></ url-pattern >与Tomcat自带Servlet的< url-pattern ></ url-pattern >配置相同时,优先采用自定义Servlet中的相关配置。假若,自定义Servlet无法处理时再交由Tomcat自带Servlet处理。
1.2 DefaultServlet应用场景
在web.xml中配置了DispatcherServlet,在该配置中通过< url-pattern >/</ url-pattern >拦截包括了静态资源在内的所有请求!故,此时需要在web.xml开启类似于DefaultServlet的配置用于处理静态资源,代码如下:
代码语言:javascript复制<mvc:default-servlet-handler/>
在此配置下在Spring MVC关于Servlet的请求交由DispatcherServlet处理,关于静态资源的请求DispatcherServlet无法处理则交由< mvc:default-servlet-handler/> 处理。
< mvc:default-servlet-handler/> 将在SpringMVC上下文中定义一个类型为DefaultServletHttpRequestHandler的Handler,该Handler会对进入 DispatcherServlet 的请求进行筛查,
小结如下:
1、DispatcherServlet优先级高于默认处理器handler。 2、假若请求是经过映射的,则由DispatcherServlet处理。 3、假若请求与静态资源相关则将该请求转交默认处理器handler处理。
1.3 JspServlet详解
类似地,在Tomcat服务器的web.xml文件中存在一个类型为org.apache.jasper.servlet.JspServlet名为jsp的Servlet。默认情况下,该Servlet用于处理jsp相关请求。
所以,我们平常看到的关于静态资源的请求和jsp的请求之所以有响应是因为Tomcat服务器帮我们进行相关配置。