如需实现优雅RESTful风格的URI资源连接,则都不希望URI带.html或.do等后缀,则需web.xml的url-pattern设置为/
<servlet-mapping>
<servlet-name>Spring-MVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
通过上面url-pattern的配置,所有URL请求都将被Spring MVC的DispatcherServlet截获。但是这样一设置的后果是,如果你是前后端分离的系统,或者你的项目是全静态Html页。那么所有的Html,css,js等静态资源全部都会404,访问不到了,是什么原因导致的呢?
其实这是由于早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置DispatcherServlet的请求映射,往往使用 *.do 、 *.xhtml等方式。这就决定了请求URL必须是一个带后缀的URL,而无法采用真正的REST风格的URL。
如果将DispatcherServlet请求映射配置为"/",则Spring MVC将捕获Web容器所有的请求,包括静态资源的请求,Spring MVC会将它们当成一个普通请求处理,因此找不到对应处理器将导致错误。
如何让Spring框架能够捕获所有URL的请求,同时又将静态资源的请求转由Web容器处理,是可将DispatcherServlet的请求映射配置为"/"的前提。由于REST是Spring3.0最重要的功能之一,所以Spring团