SpringMVC(10):配置静态资源访问(前端页面的元素显示)及实例

18/1/14

在SpringMVC中常用的就是Controller与View。但是我们常常会需要访问静态资源,如html,js,css,image等。

一、困难

默认的访问的URL都会被DispatcherServlet所拦截,但是我们希望静态资源可以直接访问。该肿么办呢?

【1】web.xml

    <!-- 配置 DispatcherServlet -->
    <servlet>  
        <servlet-name>springmvc</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
        <init-param>
            <param-name>contextConfigLocation</param-name>  
            <param-value>classpath:springmvc-servlet.xml</param-value>  
        </init-param>  
        <!--容器启动时就被加载了    -->  
        <load-on-startup>1</load-on-startup>  
    </servlet>  
  
    <servlet-mapping>  
        <servlet-name>springmvc</servlet-name>  
        <url-pattern>/</url-pattern>  
    </servlet-mapping>  


 静态资源访问,其实方法有多种,如:通过开放tomcat的defaultServlet,修改默认的url-parttern。

但是SpringMVC提供了更为便捷的方式处理静态资源。解决方案:直接在 springmvc-servlet.xml 中添加资源映射。


二、解决方法

【2】在配置文件 springmvc-servlet.xml 添加以下内容:

    
  	<!-- 配置静态资源访问 -->
  	 <mvc:resources location="/static/" mapping="/static/**"/>


2.1 mapping:映射;
2.2 location:本地资源路径,注意必须是webapp根目录下的路径;
2.3 两个‘ * ’,它表示映射resources/下所有的URL,包括子路径(即接多个/);
eg:
      http://localhost:8090/firstapp/images/cookie.png

      http://localhost:8090/firstapp/js/jquery-1.11.2.js


【3】注意将静态文件夹放置在 Web-app 的子路径下,这样默认能够检测得到。


        这样我们就可以直接访问该文件夹下的静态内容了。


三、陷阱小结

这里对访问的形式进行一个勘误,因为本人的这篇博客《SpringMVC(13):使用springmvc优化订单管理系统的示例(登陆和注销的简单实现)》 就出现了访问失效的bug(原因是我的资源路径写错了 o(╥﹏╥)o),然后我在这边作个声明:

3.1 使用超链接访问有两个写法:

	<a href="${pageContext.request.contextPath}/statics/image/Eclipse.JPG">picture.</a>

	<a href="http://localhost:80/springmvc5/statics/image/html.JPG">picture2.</a>

3.2 使用<img>标签:

	<img src="${pageContext.request.contextPath}/statics/image/Eclipse.JPG"  alt="上海鲜花港 - 郁金香" />


参考博文:《SpringMVC访问静态资源》(https://www.cnblogs.com/yank/p/4477204.html)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值