概述
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 [/] in DispatcherServlet with name 'dispatcherServlet'的全部内容,希望文章能够帮你解决解决No mapping found for HTTP request with URI [/] in DispatcherServlet with name 'dispatcherServlet'所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复