This tag allows static resource requests following a particular URL
pattern to be served by a ResourceHttpRequestHandler from any of a list
of Resource locations.
这个标签允许ResourceHttpRequestHandler从资源列表的位置根据指定的url模板请求静态资源。
This
provides a convenient way to serve static resources from locations
other than the web application root, including locations on the
classpath.
他提供了一个方便的途径来从根目录甚至classpath内读取静态资源
The cache-period
property may be used to set far future expiration headers (1 year is the
recommendation of optimization tools such as Page Speed and YSlow) so
that they will be more efficiently utilized by the client.
cache-period属性可以设置很长的缓存时间
The
handler also properly evaluates the Last-Modifiedheader (if present) so
that a 304 status code will be returned as appropriate, avoiding
unnecessary overhead for resources that are already cached by the
client.
ResourceHttpRequestHandler 根据Last-Modifiedheader (如果设置了)会返回304状态码,避免重复返回以缓存的资源。
For
example, to serve resource requests with a URL pattern of /resources/**
from a public-resources directory within the web application root, the
tag would be used as follows:
例如,通过/resources/**访问根目录下public-resources文件夹下的资源,标签可以像下边这么写:
<mvc:resources mapping="/resources/**" location="/public-resources/"/>
To
serve these resources with a 1-year future expiration to ensure maximum
use of the browser cache and a reduction in HTTP requests made by the
browser:
设置一年的缓存时间以最大化的利用浏览器缓存和减少服务器压力:
<mvc:resources mapping="/resources/**" location="/public-resources/" cache-period="31556926"/>
The
mapping attribute must be an Ant pattern that can be used by
SimpleUrlHandlerMapping, and the location attribute must specify one or
more valid resource directory locations.
mapping属性必须是可以被SimpleUrlHandlerMapping使用的路径,location属性需指定一个以上正确的目录位置。
Multiple resource locations may be specified using a comma-seperated list of values.
多个资源目录可以使用逗号分隔。
The locations specified will be checked in the specified order for the presence of the resource for any given request.
请求会按配置的顺序依次检测资源目录。
For
example, to enable the serving of resources from both the web
application root and from a known path of
/META-INF/public-web-resources/ in any jar on the classpath, the tag
would be specified as:
例如:要想让根目录和classpath下任何jar包的/META-INF/public-web-resources/目录中能够访问,标签可以如下
<mvc:resources mapping="/resources/**" location="/, classpath:/META-INF/public-web-resources/"/>
When
serving resources that may change when a new version of the application
is deployed, it is recommended that you incorporate a version string
into the mapping pattern used to request the resources, so that you may
force clients to request the newly deployed version of your
application's resources.
当新版本的应用部署后资源可能改变,推荐请求资源时在路径中加入版本戳,这样就可以强制客户端请求新版本的应用资源。
Such a version string can be parameterized and accessed using SpEL so that it may be easily managed in a
single place when deploying new versions.
版本字符串可以使用SpEL 这样当部署新版本是就可以在指定的位置更轻松的管理。
As
an example, let's consider an application that uses a
performance-optimized custom build (as recommended) of the Dojo
JavaScript library in production, and that the build is generally
deployed within the web application at a path of
/public-resources/dojo/dojo.js.
举个例子,我们考虑一个应用使用Dojo js类库产品中推荐使用而且性能良好的,通常部署在web应用的/public-resources/dojo/dojo.js
Since
different parts of Dojo may be incorporated into the custom build for
each new version of the application, the client web browsers need to be
forced to re-download that custom-built dojo.js resource any time a new
version of the application is deployed.
……(翻不出了,上一句也翻的不太对),浏览器需要随时强制下载新版本的dojo.js
A simple way to achieve this would be to manage the version of the application in a properties file, such as:
最简单的方法就是在properties文件中管理版本信息,例如:
application.version=1.0.0
and then to make the properties file's values accessible to SpEL as a bean using the util:properties tag:
使用util:properties标签把properties文件的内容提供给SpEL
<util:properties id="applicationProps" location="/WEB-INF/spring/application.properties"/>
With the application version now accessible via SpEL, we can incorporate this into the use of the resources tag:
通过SpEL得到应用的版本,可以把他加入到用到的resources标签:
<mvc:resources mapping="/resources-#{applicationProps['application.version']}/**" location="/public-resources/"
and finally, to request the resource with the proper URL, we can take advantage of the Spring JSP tags:
最后,可以使用spring jsp标签表示请求资源的url:
<spring:eval expression="@applicationProps['application.version']" var="applicationVersion"/>
<spring:url value="/resources-{applicationVersion}" var="resourceUrl">
<spring:param name="applicationVersion" value="${applicationVersion}"/>
</spring:url>
<script src="${resourceUrl}/dojo/dojo.js" type="text/javascript"> </script>
分享到:
相关推荐
2.5.1. Spring MVC的表单标签库 2.5.2. Spring MVC合理的默认值 2.5.3. Portlet 框架 2.6. 其他特性 2.6.1. 动态语言支持 2.6.2. JMX 2.6 .3. 任务规划 2.6.4. 对Java 5(Tiger)的支持 2.7. 移植到Spring 2.0 ...
2.5.1. Spring MVC的表单标签库 2.5.2. Spring MVC合理的默认值 2.5.3. Portlet 框架 2.6. 其他特性 2.6.1. 动态语言支持 2.6.2. JMX 2.6.3. 任务规划 2.6.4. 对Java 5(Tiger)的支持 2.7. 移植到Spring ...
2. **docs**:官方文档,包括API参考、用户指南和开发者手册,帮助开发者理解和使用Spring。 3. **src**:源代码,对于学习和调试Spring框架非常有帮助。 4. **samples**:示例项目,展示了如何配置和使用Spring的...
一个典型的 Spring MVC 项目结构包括:src/main/java(源代码),src/main/resources(资源配置),src/main/webapp(Web 应用资源,如静态文件和视图)。 **6. 总结** Spring MVC 提供了一整套成熟的 Web 开发...
7. **文档**:这个目录可能包含了项目的需求文档、设计文档、使用手册等,是理解项目业务逻辑和实现细节的重要参考资料。 8. **LW**:这个缩写没有明确解释,可能是指Lightweight,暗示项目的轻量级特性,或者是...
2. **Spring MVC**:作为Spring的一个模块,Spring MVC是用于构建Web应用的模型-视图-控制器(MVC)框架。在本项目中,Spring MVC处理HTTP请求,将请求分发到对应的Controller,Controller再调用Service进行业务逻辑...
2.5.1. Spring MVC合理的默认值 2.5.2. Portlet 框架 2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态...
Spring Framework 开发参考手册 Rod Johnson Juergen Hoeller Alef Arendsen Colin Sampaleanu Rob Harrop Thomas Risberg Darren Davison Dmitriy Kopylenko Mark Pollack Thierry Templier Erwin ...
SSM框架是Java web开发中常用的三大框架Spring、Spring MVC和MyBatis的组合,它在构建高效、灵活的企业级应用程序方面发挥着重要作用。在这个基于SSM的银发在线教育云平台项目中,我们可以深入探讨以下几个核心知识...
2.5.1. Spring MVC合理的默认值 2.5.2. Portlet 框架 2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态...
《阿里巴巴Java开发手册终极版v1.3.0》是一份全面、细致的Java开发规范,旨在帮助开发者遵循最佳实践,提升代码质量,降低维护成本,对于任何Java开发者来说,都是值得深入学习和参考的宝贵资源。
9. ** strut2与Spring集成**:Struts2可以与Spring框架无缝集成,实现依赖注入,提高应用的灵活性和可测试性。 10. **最佳实践和案例研究**:手册可能包含了实际开发中的最佳实践和案例,帮助开发者避免常见错误,...
在Java中,我们可以使用标准库如Servlet、JSP等来开发Web应用,或者使用Spring框架实现MVC模式,提高开发效率和代码质量。 3. **资源管理**: 在Java资源管理器中,资源可能包括文件、数据库连接、内存中的对象等...
SSM是Java Web开发中常用的技术栈,它整合了Spring的核心功能、Spring MVC的Web层处理和MyBatis的持久层操作。 【描述】虽然描述简洁,但我们可以推测该系统具备以下关键特性: 1. **Spring**:作为基础架构框架,...
Struts 把 Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套 MVC 模式,极大的节省了时间。 二、Spring 简介 Spring 是一个解决了...
这个描述暗示了项目主要使用Spring Boot作为后端技术栈,可能结合了MVC(Model-View-Controller)架构模式,以实现业务逻辑、数据持久化和用户界面的分离。 【标签】:“java”、“springboot”、“毕业设计”这三...
6. **Spring3.0.2-RELEASE-API.chm**:Spring是一个流行的Java企业级应用框架,这个文档是Spring 3.0.2版本的API参考,包括依赖注入、AOP(面向切面编程)、数据访问、Web MVC等模块的详细说明。 7. **w3school完整...
- `resources`:配置文件,如struts.xml、spring配置文件、hibernate.cfg.xml等,以及数据库连接参数和本地化资源文件。 - **WEB-INF**:Web应用的特殊目录,包含web.xml(Web应用的部署描述符)和其他库文件(如...
2. **SpringMVC**:Spring MVC是Spring框架的一个模块,负责处理HTTP请求,实现Model-View-Controller(MVC)设计模式,提供前后端交互的能力。 3. **MyBatis**:MyBatis是一个持久层框架,它允许开发者将SQL语句...
- **Spring**:提供依赖注入,AOP(面向切面编程),以及Spring MVC用于构建Web应用。 - **Struts**:负责请求分发和控制流程,处理HTTP请求并调用业务逻辑。 - **MyBatis**:持久层框架,简化了SQL操作,通过XML或...