zoukankan      html  css  js  c++  java
  • Java -- SpringMVC学习笔记5、静态资源访问

    1、静态资源访问

    在springmvc框架中、web.xml文件中<url-pattern/>的值如果从*.xxx改为为/后,静态资源就无法访问了。因为 DispatcherServlet会将向静态资源的获取请求,例如.css、.js、.jpg等资源的获取请求,当作是一个普通的 Controller请求。中央调度器会调用处理器映射器为其查找相应的处理器。当然也是找不到的。所以、如果使用斜杠的方式、就需要经过一些配置、才可以正常的访问静态资源。

    2、使用<mvc:resources/>

    在Spring3.0 版本后,Spring定义了专门用于处理静态资源访问请求的处理器ResourceHttpRequestHandler。并且添加了<mvc:resources/>标签,专门用于解决静态资源无法访问问题。

    2.1、需要在springmvc配置文件中添加如下形式的配置:

    <mvc:resources mapping="/images/**" location="/images/"/>
    
    • location:静态资源所在位置
    • mapping:如果访问路径和mapping里指定的访问形式匹配、就映射到localtion指定的位置访问对应的静态文件。后边的**代表任何文件和子目录。

    注意、mapping=/images/**、并不是说在前端访问静态资源路径里就一定要这样写、这里mapping的值和前台如何写访问路径没有关系、前端访问路径该怎么写还怎么写、是否需要加要根据情况,mapping的值是为了解析浏览器整个访问路径中某一部分、然后对应到localtion指定的位置。比如:

    <img src="images/img1.jpg">
    

    那么启动服务器然后打开浏览器访问图片的路径是:

     http://localhost:8080/springmvc/images/img1.jpg
    

    *路径里边有/images/img1.jpgmapping里指定的格式匹配、这样、就会到location指定的位置去找资源。而如果这样写:

    <img src="/images/img1.jpg">
    

    因为前边加斜杠、就会从根路径开始找、这样就会是这样:

    http://localhost:8080/images/img1.jpg
    

    结果就会是404、这样是错误的。

    2.2、声明注解驱动

    解决动态资源和静态资源冲突的问题,在 springmvc 配置文件加入:

    <!--声明注解驱动-->
    <mvc:annotation-driven/>
    

    2.3、访问测试

    从当前目录开始找images目录下的img1.jpg

    <body>
        <img src="images/img1.jpg">
    </body>
    

    这样、打开浏览器访问即可正常显示图片。

  • 相关阅读:
    我在华为做敏捷测试的那些流程
    精简测试用例编写
    五步定位性能瓶颈
    敏捷软件测试--初见
    并发用户数与TPS之间的关系
    关于CSS样式的那些事_导航条菜单讲解
    关于字符串的一些简单编码题
    设置div控件居中的方法
    sqlplus登录Oracle时ORA-01017: invalid username/password; logon denied的错误
    java中的foreach输出数组中的元素
  • 原文地址:https://www.cnblogs.com/dcy521/p/14794916.html
Copyright © 2011-2022 走看看