Spring MVC静态资源拦截(No mapping found for HTTP request with URI in DispatcherServlet with name ' ')问题
2016-08-17 22:02
337 查看
程序加载或用浏览器访问静态资源时出现以下的警告:
No mapping found for HTTP request with URI [/] in DispatcherServlet with name ”
问题原因:默认的访问的URL都会被DispatcherServlet所拦截,从web.xml下对spring mvc的DispatcherServlet请求url映射的配置可以看出,具体配置如下:
url-pattern使用的是/,而不是/,如果使用/,那么请求时可以通过DispatcherServlet转发到相应的Action或者Controller中的,但是返回的内容,如返回的jsp还会再次被拦截,这样导致404错误,即访问不到jsp。所以如果以后发现总是有404错误的时候,别忘了check一下 url-pattern的配置是否是/*.
那么如何访问自己需要的静态资源文件呢?
解决方案一(告诉spring 静态资源的处理方式):
解决方案二:
告诉spring mvc只拦截对于某一类文件的请求,比如上面配置的只拦截对于后缀为jsp文件的访问。
解决方案三:
告诉spring mvc 对于后缀为js的文件是可以访问的。依次类推,需要访问其他资源文件时可以通过servlet-mapping追加。
作者:jiankunking 出处:http://blog.csdn.net/jiankunking
No mapping found for HTTP request with URI [/] in DispatcherServlet with name ”
问题原因:默认的访问的URL都会被DispatcherServlet所拦截,从web.xml下对spring mvc的DispatcherServlet请求url映射的配置可以看出,具体配置如下:
<servlet> <servlet-name>hello-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/application.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>hello-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
<url-pattern>/</url-pattern>
url-pattern使用的是/,而不是/,如果使用/,那么请求时可以通过DispatcherServlet转发到相应的Action或者Controller中的,但是返回的内容,如返回的jsp还会再次被拦截,这样导致404错误,即访问不到jsp。所以如果以后发现总是有404错误的时候,别忘了check一下 url-pattern的配置是否是/*.
那么如何访问自己需要的静态资源文件呢?
解决方案一(告诉spring 静态资源的处理方式):
<mvc:resources location="/resources/" mapping="/resources/**"/>
解决方案二:
<servlet> <servlet-name>hello-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/application.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>hello-dispatcher</servlet-name> <url-pattern>/.jsp</url-pattern> </servlet-mapping>
告诉spring mvc只拦截对于某一类文件的请求,比如上面配置的只拦截对于后缀为jsp文件的访问。
解决方案三:
<servlet> <servlet-name>hello-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/application.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>hello-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
告诉spring mvc 对于后缀为js的文件是可以访问的。依次类推,需要访问其他资源文件时可以通过servlet-mapping追加。
作者:jiankunking 出处:http://blog.csdn.net/jiankunking
相关文章推荐
- spring mvc静态资源拦截问题
- 解决Spring MVC DispatcherServlet拦截“/”时,无法访问静态资源的问题
- Spring MVC静态资源拦截(No mapping found for HTTP request with URI in DispatcherServlet with name ' ')问题
- spring mvc静态资源拦截问题
- spring mvc 静态资源 404问题
- Spring MVC程序中得到静态资源文件css,js,图片文件的路径问题总结
- Spring MVC静态资源处理问题
- 详解SpringMVC中设置静态资源不被拦截的问题
- spring MVC js css图片等静态资源无法加载问题
- Spring MVC Restful构建中静态资源访问问题
- 关于使用security和静态资源被拦截的问题
- Spring-MVC 登录拦截与静态资源冲突的问题
- Spring mvc jsp中引入静态css资源文件问题
- spring mvc 静态资源 404问题
- spring mvc 静态资源处理遇到的问题
- Spring Mvc Web 配置拦截规则与访问静态资源 (三)
- Spring MVC Restful构建中静态资源访问问题
- Spring MVC程序中得到静态资源文件css,js,图片文件的路径问题总结
- Spring Mvc Web 配置拦截规则与访问静态资源 (三)
- Spring MVC下,RESTful风格 与 静态资源(static resource)路径映射问题