【spring mvc(四)】spring mvc使用静态资源

1.问题再现:

    <servlet-mapping>  
        <servlet-name>spring</servlet-name>  
        <url-pattern>/</url-pattern>  
    </servlet-mapping> 
we.xml的mapping配置如果是“/”,那么在jsp页面中访问js文件会被拦截:

<script src="/js/jquery.min.js"></script>
打开浏览器开发者工具,发现js访问不到。

下面是集中解决方案。

2.修改web.xml,把mapping改成"*.htm"或者"*.do"这样的,就可以访问了。当然这种并不友好,如果业务需求必须是“/”,就不能用了。

3.另一种方案还是修改web.xml。在配置spring的核心servlet前面加上下面的配置:

    <servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
这样的话,所有i的请求都会先被这个tomcat的名字为default的servlet处理,那么js的请求肯定在这里处理了,就不会被spring的拦截器拦住。但是缺点是,静态文件不能放到web-inf目录下,web-inf的必须经过controller转发才能访问。

4.最后一种也是最推荐的一种,不用修改web.xml文件,而且对静态文件的位置也没有规定,只要修改spring mvc的配置文件就可以了。添加下面的配置,当然要引入mvc命名空间。

<mvc:annotation-driven/> 
    <mvc:resources location="/WEB-INF/js/" mapping="/resource/js/**" />
这样所有的resources配置的文件就会被spring的另一个组件处理,不会被拦截。location配置的是静态文件的位置。mapping配置的是静态文件的引用方式。

最后在jsp页面只要这样就可以引用了:

<script src="/resource/js/jquery.min.js"></script>






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值