`
ganqing1234
  • 浏览: 168651 次
  • 性别: 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

 

 

 

 

分享到:
评论

相关推荐

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

    本篇文章主要介绍了Spring Boot Web 静态文件缓存处理的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    jsp实现将动态网页转换成静态页面的方法

    可以称之为总版,模仿forum 类的接口做个superforum 并且实现cachable,不过因为这个页面刷新量比较大,虽然被cache 了,我还是想办法进行页面的缓存,感觉用jsp 产生的html静态内容当缓存,页面访问速度应该有所提高...

    网站性能优化 Web开发 JSP java

    2.缓存技术(当数据更新比较快,几秒钟更新一次,或者需要实时反映数据变化,或者页面具有很多种风格,不便于生成静态页面) 页面缓存(局部缓存和全局缓存)(View,html代码) 缺点:不能做到实时更新 优点:比二...

    图片上传成功jsp页面不刷新问题

    图片上传成功jsp页面不刷新,是因为浏览器缓存导致,需要在图片请求参数中添加随机参数

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

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

    JSPMVC-Master

    6. 进行性能优化,如缓存静态资源、合理使用数据库连接池等。 源码二: **项目简介:** 使用Struts和Hibernate框架实现MVC架构。 **优化建议:** 1. 使用Struts框架来管理请求和响应,实现前端与后台业务逻辑的分离...

    spring boot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap实现后台权限管理系统源码

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

    整合springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap实现权限管理文件上传下载多数据源切换等功能

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

    JspRun!社区论坛系统 v6.0 GBK 安装版.rar

    JspRun!社区论坛系统,2010年08月04日更新内容... 15、修复生成静态页面缓存方式不正确的问题。 16、优化并提高论坛安全性,防止sql注入。 17、修复邮件验证用户控制面版信息显示错误问题。 18、更多细节问题的修复

    resource-server:Resource Server是一组库和一个Web应用程序的集合,旨在更有效地将静态资源(例如CSS和JavaScript)包含在Java Web应用程序中

    资源服务器是库和Web应用程序的集合,旨在更有效地将静态资源(例如CSS和JavaScript)包含在Java Web应用程序中。 诸如jQuery版本之类的共享资源包含在Web应用程序中的一个定义良好的版本化URL下,并带有浏览器端...

    JspRun!社区论坛系统 v6.0 bulid 090424 GBK 安装版.rar

    18、修复了Archiver 功能在 URL 非静态化的条件下无法正常访问 19、修复了论坛会员个人设置时区无效 20、修复了jspruncode的html解析错乱,如table表格,img图片标签 21、修复了版主超版部分后台权限 22、修复了...

    提升JSP应用程序的七大绝招

    通过在init()方法中缓存一些静态的数据或完成一些只需要执行一次的、耗时的操作,就可大大地提高系统性能。 例如,通过在init()方法中建立一个JDBC连接池是一个最佳例子,假设我们是用jdbc2.0的DataSource接口来...

    JspRun!社区论坛系统 v6.0 bulid 090423 GBK 源码版.rar

    18、修复了Archiver 功能在 URL 非静态化的条件下无法正常访问 19、修复了论坛会员个人设置时区无效 20、修复了jspruncode的html解析错乱,如table表格,img图片标签 21、修复了版主超版部分后台权限 22、修复了...

    从零开始学Spring Boot

    1.16 处理静态资源(自定义资源映射) 1.17 Spring Boot定时任务的使用 1.18 Spring Boot使用Druid和监控配置 1.19 Spring Boot使用Druid(编程注入) 1.20 Spring Boot普通类调用bean 1.21 使用模板(thymeleaf-...

    Nginx与Tomcat实现动静态分离和负载均衡

    当遇到访问的峰值,或者有人恶意发起慢速连接时,也很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启服务器,Nginx采取了分阶段资源分配技术,处理静态文件和无缓存的反向代理加速,实现了负载均衡和...

    springboot权限控制系统

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

    JspRun!社区论坛系统 v6.0.0 build 20110516 GBK 源码版.zip

    23、修改了:Js 调用所产生的论坛链接不能生成静态 URL 的问题。 24、修复了:前台自定义信息分类--日期控件IE下显示错误,谷歌浏览器下乱码现象 25、修改了:如果后台设置的“论坛名称”过长,在分栏模式下将出现...

    权限管理系统 shiro + ssm实现

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

    springboot+权限管理系统 shiro + ssm实现 实现菜单,自用

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

    JspRun!社区论坛系统 v6.0.0 build 20110516 UTF-8 安装版.zip

    23、修改了:Js 调用所产生的论坛链接不能生成静态 URL 的问题。 24、修复了:前台自定义信息分类--日期控件IE下显示错误,谷歌浏览器下乱码现象 25、修改了:如果后台设置的“论坛名称”过长,在分栏模式下将出现...

Global site tag (gtag.js) - Google Analytics