Spring MVC 菜鸟教程 4 DispatcherServlet url-pattern 详解

DispatcherServlet

DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自已定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理,是配置spring MVC的第一步。

web.xml

<servlet>
    <servlet-name>dispatcherservlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
    <load-on-startup>1load-on-startup>
    servlet>
<servlet-mapping>
    <servlet-name>dispatcherservlet-name>
    <url-pattern>/url-pattern>
servlet-mapping>

其中
load-on-startup:表示容器启动时初始化该Servlet;
url-pattern:表示哪些方式的请求交给Spring Web MVC处理

url-pattern

在web.xml里面url-pattern可以有3种方式。

/*

在SpringMVC里面不能使用这个,因为它会对所有的请求都进行拦截。如jsp,png,css等。

*.do

这种是最简单的配置方式,只会对以.do结尾的动态请求进行拦截。

/

这种是为了实现RESTful风格的请求地址,不过会覆盖tomcat默认的拦截请求,这样.js,*.png等静态文件的访问也拦截了。
解决的方案有2种:
方案1:直接做映射,配置一个默认命名的访问tomcat的servlet

<servlet-mapping>
    <servlet-name>defaultservlet-name>
    <url-pattern>*.jpgurl-pattern>
    <url-pattern>*.jsurl-pattern>
    <url-pattern>*.cssurl-pattern>
    <url-pattern>*.pngurl-pattern>
    <url-pattern>*.gifurl-pattern>
    <url-pattern>*.jsonurl-pattern>
    <url-pattern>*.htmlurl-pattern>
    <url-pattern>*.htmurl-pattern>
    <url-pattern>*.swfurl-pattern>
servlet-mapping>

方案2:使用SpringMVC的方式


<mvc:default-servlet-handler />

其他关联项目

  • SpringMVC 菜鸟教程 1 文件上传 配置
    http://blog.csdn.net/je_ge/article/details/53725357

源码地址

https://github.com/je-ge/spring

如果觉得我的文章或者代码对您有帮助,可以请我喝杯咖啡。
您的支持将鼓励我继续创作!谢谢!
微信打赏
支付宝打赏

你可能感兴趣的:(Spring,MVC)