静态资源java 配置文件_java web 静态资源访问配置三种方式
方案一:Tomcat的defaultServlet来处理静态文件
要放在DispatcherServlet的前面, 让 defaultServlet先拦截请求,这样请求就不会进入Spring了
方案二: 在spring3.0.4以后版本提供了mvc:resource
/images/**映射到ResourceHttpRequestHandler进行处理,location指定静态资源的位置.可以是web application根目录下、jar包里面,这样可以把静态资源压缩到jar包中。cache-period 可以使得静态资源进行web cache
如果出现下面的错误,可能是没有配置的原因。
报错WARNING: No mapping found for HTTP request with URI [/mvc/user/findUser/lisi/770] in DispatcherServlet with name 'springMVC'
使用元素,把mapping的URI注册到SimpleUrlHandlerMapping的urlMap中,
key为mapping的URI pattern值,而value为ResourceHttpRequestHandler,
这样就巧妙的把对静态资源的访问由HandlerMapping转到ResourceHttpRequestHandler处理并返回,所以就支持classpath目录,jar包内静态资源的访问.
另外需要注意的一点是,不要对SimpleUrlHandlerMapping设置defaultHandler.因为对static uri的defaultHandler就是ResourceHttpRequestHandler,
否则无法处理static resources request.
方案三 ,使用
会把"/**" url,注册到SimpleUrlHandlerMapping的urlMap中,把对静态资源的访问由HandlerMapping转到org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler处理并返回.
DefaultServletHttpRequestHandler使用就是各个Servlet容器自己的默认Servlet.
补充说明:多个HandlerMapping的执行顺序问题:
DefaultAnnotationHandlerMapping的order属性值是:0
自动注册的 SimpleUrlHandlerMapping的order属性值是: 2147483646
自动注册 的SimpleUrlHandlerMapping 的order属性值是: 2147483647
spring会先执行order值比较小的。当访问一个a.jpg图片文件时,先通过 DefaultAnnotationHandlerMapping 来找处理器,一定是找不到的,因为我们没有叫a.jpg的Action。然后再按order值升序找,由于最后一个 SimpleUrlHandlerMapping 是匹配 "/**"的,所以一定会匹配上,就可以响应图片。
如何你的DispatcherServlet拦截 *.do,.action这样的URL后缀,就不存在这样的问题。
一般看情况而选择。
静态资源java 配置文件_java web 静态资源访问配置三种方式相关推荐
- java反射之获取class对象,Java之反射机制(获取Class对象的三种方式)
Java之反射机制(获取Class对象的三种方式) 开发工具与关键技术:MyEclipse 10,java 作者:刘东标 撰写时间:2019-06-14 如何得到各个字节码对应的实例对象? 每个类被加 ...
- JS基础-Java Class类以及获取Class实例的三种方式
JS基础-Java Class类以及获取Class实例的三种方式 由于JVM为每个加载的class创建了对应的Class实例,并在实例中保存了该class的所有信息,包括类名.包名.父类.实现的接口. ...
- java反射获取实体类_java 反射获取类对象的三种方式
Java反射经常用到的就是获取对象中的属性,那么Java获取类对象就是必不可少的啦! Java实体类: public class ReflexModel { private String code; ...
- java 多线程编程(包括创建线程的三种方式、线程的生命周期、线程的调度策略、线程同步、线程通信、线程池、死锁等)
1 多线程的基础知识 1.1 单核CPU和多核CPU 单核CPU,其实是一种假的多线程,因为在一个时间单元内,也只能执行一个线程的任务.微观上这些程序是分时的交替运行,只不过是给人的感觉是同时运行,那 ...
- java 异步事件_处理异步事件的三种方式
在网站开发中,异步事件是项目必然需要处理的一个环节,也因为前端框架的兴起,通过框架实现的 SPA 已经是快速建构网站的标配了,一部获取数据也就成了不可或缺的一环:本文来就讲一讲 JavaScript ...
- java base64 编码 类_java base64编码和解码的三种方式 | 学步园
方式一:使用commons-codec.jar /** * @param bytes * @return */ public static byte[] decode(final byte[] byt ...
- java如何显示当天世界_Java学习笔记——显示当前日期的三种方式
一.Date类:这是一种过时的表达方式 import java.util.Date;Date date = new Date(); System.out.println((1900+date.getY ...
- java计算时间差(耗时计算)的三种方式
目录 一.System.currentTimeMillis() 二.StopWatch 1.spring 用法 ①.简单用法 ②.说明 ③.方法 ④.详细用法 2.apache 用法 ①.简单用法 ② ...
- Java 设计模式之责任链模式实现的三种方式
点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 The worst way to miss someone is to be ...
最新文章
- Spark在集群中的安装
- 看看HashSet源码
- 【Golang 基础】Go 语言的程序结构
- 2018.8.14-C#复习笔记总
- python自动化接口测试中的cookies怎么实现_python接口自动化测试--requests cookies处理...
- 字符变量赋值规则_Java的常量、变量、数据类型(基础篇二)
- docker 磁盘问题:device or resource busy
- 第一章:pip 的安装和使用
- uniapp读取和写入文件
- Javascript中Math常用操作,向上取整、向下取整、四舍五入
- TGA文件格式分析和图片举例
- web服务器、数据库服务器
- Power Query M函数_我常用的玩法
- java遍历json数据_Java 如何遍历JsonObject对象
- Ubuntu server 18.04 服务器配置
- linux下混杂模式
- 22/02/17学习笔记
- 【每天学点管理】—如何提高团队的执行力
- HW算法题:查找众数及中位数
- 发布自己的Python包(Pypi)
热门文章
- 用友BIP助力大型企业构建“敏态+稳态”的数智企业摩天
- 使用MediaCodeC将图片集编码为视频
- Java集合中HashMap日常问题及解决办法
- MariaDB Window Functions窗口函数分组取TOP N记录
- 用CORS 解决vue.js django跨域调用
- rhel7 http实例2
- Apache CXF实现WebService发布和调用
- oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT
- C# 调用SQL的存储过程的接口及实现
- 基于corosync和NFS服务器实现LNMP的高可用