为什么访问不了静态的资源?

本文讲述了在SpringMVC中,由于DispatcherServlet默认屏蔽HTML页面,导致静态资源无法访问的问题。提供了三种解决方法:在web.xml中添加servlet-mapping,配置spring-mvc.xml开放资源访问,以及使用mvc:default-servlet-handler让容器处理未找到的资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringMVC中的控制器(org.springframework.web.servlet.DispatcherServlet)中默认是jsp页面,

默认的配置DispatcherServlet屏蔽了html页面的访问。

为什么访问不了静态的资源:原因在于前端控制器DispatcherServlet的配置,当前端发来请求访问资源时,DispatcherServlet会去找@RequestMapping,找不到时就啥也不干。

解决办法一:

在web.xml中加上下面代码即可。

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>
解决办法二:

在spring-mvc.xml中开放资源的访问

   <!--开放资源的访问
    mapping的值是访问服务端的地址,location的值是资源所在的目录,注意/要写全!
    -->
    <mvc:resources mapping="/html/**" location="/html/"></mvc:resources>
解决办法三:

在spring-mvc.xml中设置前端控制器找不到资源的话,交由原始的容器寻找

    <!--当前端控制器找不到对应资源就交给原始容器寻找(此处是tomcat)-->
    <mvc:default-servlet-handler></mvc:default-servlet-handler>
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值