`
ganqing1234
  • 浏览: 171720 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

jsp静态资源的缓存

阅读更多

     在jsp页面中有很多资源都是静态的,很少发生改变。如引入的js,css文件,如果每次加载页面都要到服务器去请求这些文件,会造成一定的浪费,如果将这些资源进行缓存,用户体验就会更好。思路是这样,服务第一次接受静态资源的请求后得到资源输出给客户,输出时设置缓存,下次请求利用浏览器的缓存机制从缓存中获取资源文件。

     这就需要做两方面的工作:

     第一、静态资源的路径需要添加版本号,如js文件要写出<script  src ="/js/menu.js?__V=1248657811953 "  type ="text/javascript " >,这里的版本号采用的是js文件的lastModified属性,这样但服务器端的js有改动的话,版本号就会变化,从而重新加载新的js资源文件。这里就需要写相应的jsp tag类了,用于生成合适的资料路径。有关如何定制jsp tag请参考相关的文档。

 

    第二、输出文件时添加缓存,我们这里采用的是在filter中添加缓存,在web.xml中定义如下内容:

<filter-mapping>
        <filter-name>StaticResourceFilter</filter-name>
        <url-pattern>/js/*</url-pattern>
    </filter-mapping>

    <filter-mapping>
        <filter-name>StaticResourceFilter</filter-name>
        <url-pattern>/css/*</url-pattern>
    </filter-mapping>

    这样css和js文件的请求都会经过StaticResourceFilter,于是css和js目录下的所有文件都会被缓存,在这个filter里,我们就可以在输出css和js资源时,添加过期头了。代码类似:

public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain)
            throws IOException, ServletException {

        // add expire head.
        response.setHeader("Cache-Control", ?);
        response.setDateHeader("Expires", ?);
        chain.doFilter(request, response);
    }

 根据自己的需要添加相应的控制。有关response的过期头知识可参考:http://sites.google.com/site/wisedukb/Home/response-expire-header

 

 

 

 

分享到:
评论

相关推荐

    jsp静态化,jsp静态化

    JSP静态化主要有以下几种实现方式: 1. **页面缓存**:当一个JSP页面被请求时,服务器会将其转换成HTML并存储在缓存中。下次相同请求到来时,直接从缓存中读取HTML,不再解析JSP,降低了服务器的计算开销。 2. **...

    Spring Boot Web 静态文件缓存处理的方法

    加上缓存配置后,我们访问页面后,被加载过的静态资源就会缓存在浏览器的内存中或磁盘中。在 Size 那列有 from memory cache,资源被缓存在浏览器的内存中了,也有的文件会缓存在磁盘中,那就是 from disk cache。 ...

    jsp静态化和伪静态化

    在JSP中,实现伪静态化通常需要借助Web服务器(如Apache、Nginx)或应用服务器(如Tomcat)的URL重写模块,通过配置规则将看似静态的URL映射到实际的动态处理程序。 总的来说,静态化和伪静态化都是优化Web性能的...

    jsp静态化总结(jsp2html)

    **一、JSP静态化的原理** JSP静态化的基本思路是将用户请求的JSP页面在首次访问时或定时任务中预先执行,生成不包含任何服务器端脚本的纯HTML页面,然后将这个HTML页面返回给客户端。这样,后续的请求就可以直接...

    JSP生成静态页面

    **JSP生成静态页面**是一种优化网站性能的技术,它通过将动态内容转化为静态HTML文件,减少服务器处理请求的负担,提高网页的加载速度。...在实际项目中,应结合具体需求和资源来选择合适的静态化策略。

    在Jsp中怎样清空缓存 了解就可以了

    1. **浏览器缓存**:当用户访问一个网页时,浏览器会自动将页面的静态资源(如图片、CSS、JavaScript文件等)存储在本地缓存中,以便下次访问时快速加载。要清空浏览器缓存,可以手动通过浏览器的设置选项来完成,如...

    jsp 页面缓存

    客户端缓存通常依赖于HTTP头信息,服务器通过设置合适的缓存策略,可以让浏览器自动缓存静态资源,如CSS、JavaScript文件和图片。 总结来说,"jsp 页面缓存"是一个涉及到Web性能优化的关键概念。通过合理地设置和...

    jsp的页面静态化技术,很实用

    利用缓存机制,当一个JSP页面被请求时,服务器先检查是否有缓存的静态版本,如果有则直接返回,否则生成静态页面并缓存。 **三、实战中的注意事项** 1. **URL管理** 静态化后的页面需要与原始动态页面保持相同的...

    JSP页面静态化最普遍用的三种

    这种方法涉及到Servlet过滤器(Filter)的概念,Filter可以在HTTP请求到达目标资源(如JSP页面)之前对其进行处理。在JSP页面静态化场景中,Filter可以拦截请求,生成HTML页面,然后直接返回给客户端,而不再调用原...

    smbms静态资源(超市管理系统)

    在实际开发中,静态资源的优化对于提升用户体验至关重要,包括减少HTTP请求次数、压缩文件大小、利用缓存策略等。同时,前端框架和库如Bootstrap、Vue.js、React等也可能被用来增强用户界面的交互性和响应性。 总结...

    jsp实现URL伪静态.rar

    本资料"jsp实现URL伪静态.rar"将详细介绍如何在JSP环境下实现这一功能。 首先,我们要理解动态URL与静态URL的区别。动态URL通常包含一系列参数,如问号(?)、等号(=)以及多个参数之间用与号(&)分隔,这样的URL...

    jsp 缓存处理

    5. **浏览器缓存**:客户端浏览器会缓存静态资源和动态内容,以减少网络传输。 ### 二、JSP页面缓存的实现 #### 1. 服务端方法 服务端通过设置HTTP响应头控制浏览器缓存策略: ```java response.setHeader(...

    java JSP页面静态化总结_动态页面变为静态页面以减少访问数据库的次数提高速度.zip

    - 缓存管理:静态页面可能需要缓存控制策略,以平衡性能和资源消耗。 - 安全性:静态化可能暴露出原本动态页面隐藏的信息,因此需谨慎处理敏感数据。 5. **实践应用**: - 在大型网站和电子商务平台中,静态化...

    jsp生成静态页并分页

    - **缓存机制**:为了提高效率,还可以设置缓存策略,比如基于时间戳或者访问频率更新静态页面,确保内容的实时性。 **2. 分页技术** 分页是大型数据集展示的常见方法,它能够帮助用户更有序地浏览内容,减轻...

    jsp 生成 HTML 静态页实例

    在Web开发领域,JavaServer Pages (JSP) 是一种广泛使用的服务器端脚本语言,用于创建动态、交互式的网页。JSP技术允许开发者将HTML代码...在实际项目中,还可以结合缓存技术和CDN服务进一步优化静态资源的分发和访问。

    JSP页面缓存的简单实现 (可用于 content-type 为字符类型的JSP页面).zip

    总的来说,JSP页面缓存是一个提高Web应用性能的重要工具,尤其是在处理大量静态或半静态内容时。正确地实现和使用JSP页面缓存可以有效地降低服务器压力,提升用户体验。这个资源提供了一个基础的实现方案,对于理解...

    freemarker把jsp静态化简单应用

    6. **JSP静态化** JSP静态化是指将原本动态生成的JSP页面转换为纯HTML页面,减少服务器端的计算负担,提高页面加载速度。在FreeMarker中,我们可以预先生成HTML页面并存储在服务器上,当用户请求时直接返回静态页面...

    动态Jsp页面转换成静态Html页面

    - CDN服务:内容分发网络可以缓存静态HTML,进一步加速页面加载。 总结,动态JSP页面转换成静态HTML页面是一种常见的优化手段,它能够提升网站性能,减轻服务器负担,并有助于SEO。通过编写Servlet,我们可以实现这...

    java/jsp网站实现伪静态

    在提供的压缩包中,可能包含了演示项目和相关的jar包,这些资源可以帮助开发者更好地理解和实践Java/JSP环境下的伪静态实现。通过分析Demo项目,你可以看到具体的配置和代码实现,加深对这一技术的理解。 总的来说...

    springboot+mybatis+druid+jsp+bootstrap实现后台权限管理系统源码.zip

    项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存...

Global site tag (gtag.js) - Google Analytics