SpringMVC 的<mvc:resources>使用映射路径展示文件服务器上的图片

<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*:application-web.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

后来发现原来这个还与org.springframework.web.servlet.DispatcherServlet的中的url-pattern配置有关

原因是:使用 / 拦截了所有的请求,会影响到静态资源文件的获取,这样就需要用mvc:default-servlet-handler和mvc:resources来帮住分类完成获取静态资源的责任

解决方案:

<mvc:resources mapping="/images/**" location="/WEB-INF/images/" cache-period="31556926"/>
<mvc:resources mapping="/js/**" location="/WEB-INF/js/" cache-period="31556926"/>
<mvc:resources mapping="/css/**" location="/WEB-INF/css/" cache-period="31556926"/>

  使用<mvc:resources/>元素,把mapping的URI注册到SimpleUrlHandlerMapping的urlMap中,key为mapping的URI pattern值,而value为ResourceHttpRequestHandler,这样就巧妙的把对静态资源的访问由HandlerMapping转到ResourceHttpRequestHandler处理并返回,所以就支持classpath目录,jar包内静态资源的访问.另外需要注意的一点是,不要对SimpleUrlHandlerMapping设置defaultHandler。因为对static uri的defaultHandler就是ResourceHttpRequestHandler,否则无法处理static resources request。

原文地址:https://www.cnblogs.com/hollowcabbage/p/9037870.html

时间: 2024-11-09 14:54:22

SpringMVC 的<mvc:resources>使用映射路径展示文件服务器上的图片的相关文章

SpringMVC 的使用映射路径展示文件服务器上的图片

需求: 前端上传图片,返回路径给前端,前端通过路径来访问图片的资源. 解决方案: <mvc:resources mapping="/${mapping_path}/**" location="file:${local_path}/"></mvc:resources> 对应的propterties文件的配置: mapping_path = resouce local_path = /root/home/img/ 总结: 当时对其中的注解一知半解

SpringMVC同时使用&lt;mvc:resources … /&gt;和日期转换Formatter时出现问题的解决方法

很久没更新博文了,不是没有学习,而是很多东西记在OneNote里面,收获很多啊,因为各种杂事,所以对于博客很久没更新了. 个人觉得:博客比起OneNote或者为知笔记之类的云笔不同在于博客应该记载的是比较成体系的东西,所以很多东西我准备统一回顾我学到的东西后,再成体系的更新在这里来. 废话说多了,先处理RT的问题. 一.问题由来 在学习SpringMVC的过程中,对于URL的拦截,我使用了RESTful,这是一种在形式上没有动词没有后缀结尾的URL表现形式,利用PUT/POST/DELETE/G

Info模式下的隐形杀手(SpringMVC同时使用&lt;mvc:resources.../&gt;和FormattingConversionServiceFactoryBean时出现的问题)

天气一天比一天变的凉快了,而我一天天踩的坑更加贱了,首先在北京向各位问好,也给身边献身教育事业的亲朋好友们补上一句节日快乐! 今天早上手贱把项目误删了,不得不去SVN上去乞求了.我个人习惯项目运行的时候是debug模式跑着,但是,问题来了,启动竟然抛点异常.....可是上周还好好的,让我有点怀疑人生了.但是还有一个但是,我把日志模式改为info模式,这个贱贱的错误又隐藏起来了,项目一切正常运行,是没问题的.声明一点啊,这个错误不是跟日志的模式有关. 出现问题的根源,就是springmvc框架加载

springmvc笔记(基本配置,核心文件,路径,参数,文件上传,json整合)

首先导入jar包 大家注意一下我的springmvc,jackson,common-up的jar包版本.其他版本有可能出现不兼容. src文件: webroot目录: web.xml 1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http:/

关于SpringMVC中找不到&lt;mvc:resources/&gt;标签的解决办法

关于SpringMVC中找不到<mvc:resources/>标签的解决办法 在springMVC中我们经常会用到<mvc:resources/>标签,但是有些编辑器中的schema过于陈旧.导致找不到<mvc:resources/>标签. 经过试验,有两个解决办法: 1.替换文件: 打开window->preferences,在输入框输入xml找到xml Catalog.在右边中找到http://www.springframework.org/schema/mv

spring-mvc里的 &lt;mvc:resources&gt; 及静态资源访问

在进行Spring MVC的配置时,通常我们会配置一个dispatcher servlet用于处理对应的URL.配置如下: <!-- The front controller of this Spring Web application, responsible for handling all application requests --> <servlet> <servlet-name>SpringMVC</servlet-name> <serv

idea调试springMVC报错:通配符的匹配很全面, 但无法找到元素 &#39;mvc:resources&#39; 的声明

错误信息如下: org.apache.catalina.core.ApplicationContext log 严重: StandardWrapper.Throwable org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 39 in XML document from class path resource [spring-mvc.xml] is invalid; nested exceptio

Spring MVC静态资源处理——&lt;mvc:resources /&gt; ||&lt;mvc:default-servlet-handler /&gt;

优雅REST风格的资源URL不希望带 .html 或 .do 等后缀.由于早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置DispatcherServlet的请求映射,往往使用 *.do . *.xhtml等方式.这就决定了请求URL必须是一个带后缀的URL,而无法采用真正的REST风格的URL. 如果将DispatcherServlet请求映射配置为"/",则Spring MVC将捕获Web容器所有的请求,包括静态资源的请求,Spring MVC会将它们当

SpringMVC注解汇总(二)-请求映射规则

接上一节SpringMVC注解汇总-定义 讲到Httpy请求信息 URL路径映射 1)普通URL路径映射 @RequestMapping(value={"/test1", "/user/create"}): 多个URL路径可以映射到同一个处理器的功能处理方法. 2)URI模板模式映射@RequestMapping(value="/users/{userId}"): {×××}占位符, 请求的URL可以是 "/users/123456&q