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>
    

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

  • 相关阅读:
    ExtJs学习准备工作(二) firebug firefox插件的安装 全新时代
    Hibernate系统中调试SQL方式 全新时代
    Eclipse工程出现红叉导致无法编译的问题 全新时代
    javascript 取table中内容
    Asp.Net中清空所有textbox的几种方法
    SQL Server:使用系统存储过程实现的通用分页存储过程
    C# 检查网络是否连通
    sq分页原理
    SQL Server:日志备份和差异备份还原中的常见问题示例
    javascript:连接数据库
  • 原文地址:https://www.cnblogs.com/dcy521/p/14794916.html
Copyright © 2011-2022 走看看