我是靠谱客的博主 清新歌曲,最近开发中收集的这篇文章主要介绍解决No mapping found for HTTP request with URI [/] in DispatcherServlet with name 'dispatcherServlet',觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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'所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部