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

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



发表评论

电子邮件地址不会被公开。 必填项已用*标注

昵称 *