SpringMVC注解开发方式二
拦截使用“/”
<url-pattern>/</url-pattern> / 和.do的区别是: 1./ 可以直接使用@RequestMapping(“index”) 中的index 直接访问 而.do 则必须写成index.do 2.静态资源过滤:详情请听下一节:SpringMVC静态资源过滤! |
SpringMVC静态资源过滤
静态资源:js,css,img等
在springMVC中如果在web.xml中配置<url-pattern>/</url-pattern> 的时候,则会拦截静态资源显示。而配置成<url-pattern>*.do</url-pattern>则不会拦截!
案例:jsp页面
<body> <img alt="this is a 一个大美女!" src="<%=request.getContextPath() %>/img/gaoyy.jpg"> <form action="login" method="post"> <input type="text" name="name"/><br> <input type="password" name="pwd"/><br> <input type="submit" value="Login"/><br> </form> </body> |
Web.xml
<servlet-mapping> <servlet-name>mvc</servlet-name> <!-- url-pattern 配置方式 /代表当前目录表示拦截所有请求 *.action 表示拦截以.action为结尾的请求 *.xxx /*错误的配置方式 --> <url-pattern>/</url-pattern> </servlet-mapping> |
项目结构:
显示结果:
解决方案:
第一种:使用<mvc:resources> 标签进行过滤
mvc-servlet.xml中配置,也就是在springmvc的核心配置文件中配置。
<!-- 静态资源过滤 --> <mvc:resources location="/img/" mapping="/img/**"></mvc:resources> |
第二种:在web.xml中配置servlet-mapping
<servlet-mapping> <!-- servlet 默认的名称就是default --> <servlet-name>default</servlet-name> <url-pattern>*.jpg</url-pattern> </servlet-mapping> |
通常使用:第一种在springmvc的核心配置文件添加过滤标签就可以了!