DispatcherServlet的url-pattern配置

背景

由于搭建框架不是经常用到,一次搭建以后,会把代码copy来copy去,在最近学习spring源码时,搭建springmvc去配置化的测试工程时,对DispatcherServlet的url-pattern配置总是搞不清楚,所以写篇博客,以供自己参考

DispatcherServlet常见的配置

  <servlet>
       <servlet-name>springmvc</servlet-name>
       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
       <!-- contextConfigLocation配置springmvc加载的配置文件(配置处理器映射器,适配器等等)
       如果不配置,默认加载的是/WEB-INF/[DispatcherServlet 的Servlet 名字]-servlet.xml(springmvc-servlet.xml) -->
       <init-param>
           <param-name>contextConfigLocation</param-name>
           <param-value>classpath:spring/springmvc.xml</param-value>
       </init-param>
       <load-on-startup>1</load-on-startup>
   </servlet>
   <servlet-mapping>
       <servlet-name>springmvc</servlet-name>
       <url-pattern>/</url-pattern>
   </servlet-mapping>

常见的url-pattern配置有以下三种:

  • 第一种:

*.xxx   以指定后缀结尾的请求都交由DispatcherServlet处理

  • 第二种:

   将会覆盖容器的default servlet, 凡是在web.xml文件中找不到匹配的URL,它们的访问请求都将交给该Servlet处理(静态资源也将会拦截). 所以web.xml没有配置其他特殊路径的servlet, 基本上所有的请求都交由DispatcherServlet处理.

/*    错误的配置,会拦截*.jsp, *.jspx的请求, 使用这种配置最终要转发到一个JSP页面,仍然会由DispatcherServlet, 解析jsp地址, 不能根据jsp页面找到handler, 会报错
 

发布了61 篇原创文章 · 获赞 48 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/hzau_itdog/article/details/103920049