SpringMVC之再解url-pattern
配置详解
关于SpringMVC的配置文件web.xml中
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc.xml
1
springmvc
*.do
(1)建议写为*.do形式
在没有特殊要求的情况下,SpringMVC的中央调度器DispatcherServlet的
springmvc
*.do
(2)不能写为/*
这里的url-pattern不能写成/*,因为DispatcherServlet会将向动态页面的跳转请求,即向JSP页面的跳转请求也当做是一个普通的Controller请求。中央调度器会调用处理器映射器为其查找相应的处理器。当然是找不到的,所以在这种情况下,所有的JSP页面跳转均会报404错误。
springmvc
/*
如此时访问index.jsp,将会出现以下页面:

(3)最好也不要写成/
最好也不要写成/,因为DispatcherServlet会将静态资源的获取请求,例如.css,.js,.jpg,.png等资源的获取请求,当做是一个普通的Controller请求。中央调度器会调用处理器映射器为其查找相应的处理器。当然也是找不到的,所以在这种情况下,所有的静态资源请求也均会报404错误。
springmvc
/
如在index.jsp中添加如下代码:
也将会出现404页面:

(4)总结
.do大法好,建议都写成.do的形式
springmvc
*.do
静态资源访问
(1)使用Tomcat中名为default的Servlet
在Tomcat中,有一个专门用于处理静态资源访问的Servlet-DefaultServlet。其

我们要做的就是直接使用它即可,即直接在web.xml中注册
default
*.jpg
default
*.png
default
*.css
default
*.js
此时如果再访问
将会正常显示图片
(2)使用
只需在springmvc.xml中添加

(3)使用
在Spring3.04版本后,Spring中专门定义了用于处理静态资源访问请求的处理器ResourceHttpRequestHandler。并且添加了mvc:resources标签,专门用于解决静态资源无法访问问题。需要在springmvc中添加如下形式的配置:
location表示静态资源所在目录。当然,这里的目录包含/WEB-INF/目录及其子目录。 mapping表示对该静态资源的请求。注意,后面的两个**。 该配置会把对该静态资源的访问请求添加到SimpleUrlHandlerMapping的urlMap中,key就是真正与mapping的URI匹配的URI,而value则为静态资源处理器对象ResourceHttpRequestHandler。