码迷,mamicode.com
首页 > 编程语言 > 详细

springMVC 请求404异常或静态资源无法访问

时间:2015-10-14 18:14:45      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:

springMVC 请求404错误或静态资源无法访问问题:springMVC 请求404错误或静态资源无法访问。 在web.xml中我们一般这样配置:

spring3

org.springframework.web.servlet.DispatcherServlet

1

spring3

/

使用

/

可以实现rest风格,但是会拦截了所有的请求导致静态资源无法访问(解决方法后面说), 当然,如果你使用*.do、*.xhtml等就不会出现静态资源无法访问问题。 静态资源无法访问解决方案: 1,在spring3-servlet.xml中添加一下配置:

使用元素,把mapping的URI注册到SimpleUrlHandlerMapping的urlMap中, key为mapping的URI pattern值,而value为ResourceHttpRequestHandler, 这样就巧妙的把对静态资源的访问由HandlerMapping转到ResourceHttpRequestHandler处理并返回,所以就支持classpath目录,jar包内静态资源的访问. 另外需要注意的一点是,不要对SimpleUrlHandlerMapping设置defaultHandler.因为对static uri的defaultHandler就是ResourceHttpRequestHandler, 否则无法处理static resources request. 如果加上以上配置还是不成功,检查一下是不是没有配置:2,在spring3-servlet.xml中添加一下配置:会把"/**" url,注册到SimpleUrlHandlerMapping的urlMap中,把对静态资源的访问由HandlerMapping转到 org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler 处理并返回. DefaultServletHttpRequestHandler使用就是各个Servlet容器自己的默认Servlet. 推荐使用*.do或方案2,如果你访问一个网站的默认主页(也就是web.xml中配置的welcome-file)index.jsp,一般我们可以类似这样访问:http://localhost:8080/apprecommend-web/ 会自动跳转到http://localhost:8080/apprecommend-web/index.jsp,如果使用方案1,就不能这样访问了,因为spring会拦截所有的请求,但是拦截到的/apprecommend-web/没有匹配的处理action,而且就直接 返回404,不再处理了,如果使用方案2,还会由DefaultServletHttpRequestHandler去调用Servlet容器自己的默认Servlet进行处理,然后返回。

springMVC 请求404异常或静态资源无法访问

标签:

原文地址:http://my.oschina.net/babymason/blog/517166

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!