解决No mapping found for HTTP request with URI [/] in DispatcherServlet with name 'dispatcherServlet'
2018-11-21 12:27
363 查看
21-Nov-2018 11:27:52.789 警告 [http-nio-8088-exec-3] org.springframework.web.servlet.DispatcherServlet.noHandlerFound No mapping found for HTTP request with URI [/] in DispatcherServlet with name ‘dispatcherServlet’
关于springMVC拦截后无法访问静态资源问题
一、问题介绍
在平常的ssm开发中,经常遇到这样的拦截问题,但是拦截器过于强大,连不需要的拦截的资源也一起拦截了,导致静态资源无法访问,也就导致了一堆的404
二、问题分析
<servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <async-supported>true</async-supported> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping>
通过以上代码看出,服务器会对@Controller中的@RequestMapping里带有.html请求进行拦截,那么怎么才能拦截静态资源呢
三、解决方案
1、简单粗暴的servlet方法
通过一堆的拦截器进行拦截所有的静态文件(根据各自情况)
这种方法相当于在告诉服务器,这些东西你别管
<servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>*.png</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>*.css</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>*.jsp</url-pattern> </servlet-mapping>
这种方法显得过于臃肿和麻烦
2.方法与上面大体相同
<servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/resouces/*</url-pattern> </servlet-mapping>
3.通过springMVC配置来解决问题
在mvc文件中加上静态资源配置(推荐)
<mvc:resources location="static" mapping="/static/**"/>
这里的location代表在webapp下的static的所有文件,mapping表示以static开头的所有请求
4.
<mvc:default-servlet-handler/>
这里可以直接一键配置,但是弊端也很多,不是非常推荐使用,平常比较懒的同学可以尝试~
总结:如果还是无法访问资源,可能是以上配置出现的问题,如果有其他方法解决欢迎留言交流,转载请注明出处,谢谢~
相关文章推荐
- No mapping found for HTTP request with URI [/app17a/] in DispatcherServlet with name 'springmvc'解决方法
- 相对路径获取项目文件 及报错 No mapping found for HTTP request with URI XXX in DispatcherServlet with name ‘springmvc’解决方法
- No mapping found for HTTP request with URI [/...] in DispatcherServlet with name ...的解决方法
- No mapping found for HTTP request with URI [/item/536563] in DispatcherServlet with name 'taotao-man
- spring框架的项目报错:No mapping found for HTTP request with URI [ ] in DispatcherServlet with name 'spring'
- No mapping found for HTTP request with URI [/SpringMVC/hello] in DispatcherServlet with name 'chapte
- Spring : No mapping found for HTTP request with URI in DispatcherServlet with name "..."
- No mapping found for HTTP request with URI [/] in DispatcherServlet with name 'projectname'
- 警告: No mapping found for HTTP request with URI [/springmv/iew] in DispatcherServlet with name 'sprin
- no mapping found for http request with uri in dispatcherservlet with name
- No mapping found for HTTP request with URI [/xxx] in DispatcherServlet with name 'despatcherServlet'
- No mapping found for HTTP request with URI in DispatcherServlet with name 'XXX'
- No mapping found for HTTP request with URI [/prjName/contro] in DispatcherServlet with name 'spring'
- No mapping found for HTTP request with URI [/brand/findAll.do] in DispatcherServlet with name 'sprin
- No mapping found for HTTP request with URI [/bdp/] in DispatcherServlet with name
- 警告: No mapping found for HTTP request with URI [] in DispatcherServlet with name
- No mapping found for HTTP request with URI [/index.do] in DispatcherServlet with name 'SpringMVC‘
- No mapping found for HTTP request with URI [/spring/WEB-INF/page/index.jsp] in DispatcherServlet with name &#39;spring&#39;
- No mapping found for HTTP request with URI [/SpringMvc2/ItemList] in DispatcherServlet with name 'sp
- WARNING: No mapping found for HTTP request with URI [/app/add] in DispatcherServlet with name '...'