`

jsp 设置缓存 图片缓存 js缓存 css缓存

    博客分类:
  • Java
阅读更多
  
package com.elink.control;

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.elink.util.*;

/**
 * @author liubj
 */

public class BusiCacheFilter implements Filter
{
 private FilterConfig config  = null;
 private HashMap expiresMap = new HashMap();

 public void init(FilterConfig filterConfig)
 {
  this.config = filterConfig;
  expiresMap.clear();
  Enumeration names = config.getInitParameterNames();
  while( names.hasMoreElements() )
  {
   try
   {
    String name = (String)names.nextElement();
    String value = config.getInitParameter( name );
    Integer expire = Integer.valueOf( value );
    expiresMap.put( name, expire );
   }
   catch( Exception ex)
   {
   }
  }
 }

 public void doFilter( ServletRequest request, ServletResponse response, FilterChain chain)
  throws IOException, ServletException
 {
  HttpServletRequest req = (HttpServletRequest) request;
  HttpServletResponse res = (HttpServletResponse) response;
  
  String uri = req.getRequestURI();
  String ext = null;
  int dot =  uri.lastIndexOf(".");
  if( dot != -1 )
  {
   ext = uri.substring( dot+1 );
  }
  
  setResponseHeader( res, uri, ext );
  chain.doFilter(request, response);
 }

 public void destroy()
 {
 }
 
 protected FilterConfig getFilterConfig()
 {
  return (config);
 }
 
 
 private void setResponseHeader( HttpServletResponse response, String uri, String ext )
 {
  if( ext!= null && ext.length() > 0 )
  {
   Integer expires = (Integer)expiresMap.get(ext);
   if( expires != null )
   {
    LogUtil.logDebug( uri + ".Expires: "+ expires.intValue());
    if( expires.intValue() > 0 )
    {
     response.setHeader("Cache-Control","max-age="+expires.intValue()); //HTTP 1.1
    }
    else
    {
     response.setHeader("Cache-Control","no-cache");
     response.setHeader("Pragma","no-cache"); //HTTP 1.0
     response.setDateHeader ("Expires", 0 );
    }
   }
  }
 }
}

 

web.xml

 

<filter>
 <filter-name>busicachefilter</filter-name>
 <filter-class>com.elink.control.BusiCacheFilter</filter-class>
 <init-param>
  <param-name>js</param-name>
  <param-value>3600</param-value>
 </init-param>
 <init-param>
  <param-name>gif</param-name>
  <param-value>3600</param-value>
 </init-param>
 <init-param>
  <param-name>jpg</param-name>
  <param-value>3600</param-value>
 </init-param>
 <init-param>
  <param-name>css</param-name>
  <param-value>3600</param-value>
 </init-param>
  </filter>
  <filter-mapping>
 <filter-name>busicachefilter</filter-name>
 <url-pattern>*.js</url-pattern>
  </filter-mapping>
  <filter-mapping>
 <filter-name>busicachefilter</filter-name>
 <url-pattern>*.gif</url-pattern>
  </filter-mapping>
  <filter-mapping>
 <filter-name>busicachefilter</filter-name>
 <url-pattern>*.jpg</url-pattern>
  </filter-mapping>
  <filter-mapping>
 <filter-name>busicachefilter</filter-name>
 <url-pattern>*.css</url-pattern>
  </filter-mapping>

 
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/netcom19/archive/2004/12/11/213141.aspx

分享到:
评论

相关推荐

    jsp 页面缓存

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

    js、css、img等浏览器缓存问题的2种解决方案.docx

    * js 设置缓存及猎取设置的缓存 * JSP 页面缓存 cache 技术--扫瞄器缓存介绍及实现方法 * Js 代码中,ajax 恳求地址后加随机数防止扫瞄器缓存的缘由详解 * AngularJS 中$http 缓存以及处理多个$http 恳求的方法 * JS ...

    jsp去除浏览器缓存

    浏览器缓存是指浏览器存储已访问过的页面资源(如HTML文档、图片、CSS样式表等),以便当用户再次访问同一页面时能够更快地显示这些资源。这样做的好处是可以显著提高页面的加载速度,并减轻服务器的压力。但在某些...

    jsp 缓存处理

    - **永久缓存**:对于不经常变动的静态资源(如CSS、JavaScript文件)可设置长期缓存。 ### 五、优化与注意事项 - **缓存粒度**:根据内容变化频率和大小划分缓存单元,避免整体更新导致不必要的开销。 - **缓存...

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

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

    tomcat缓存

    如果启用了JSP缓存,那么这个编译后的Servlet会被保存在内存中,后续请求相同JSP时,无需再次编译。 ### 2. 配置Tomcat缓存 #### 2.1 CoyoteCaching配置 CoyoteCaching可以通过修改`server.xml`中的`Connector`...

    如何清除tomcat缓存

    2. **静态资源缓存**:除了JSP文件外,Tomcat还可能缓存静态资源(如CSS、JavaScript文件等)。这些资源通常被浏览器缓存,而不是由Tomcat缓存。不过,对于Tomcat内部的缓存管理策略,我们同样需要关注。 #### 清除...

    Jsp中如何让图片在div中居中

    最后,还需提一下,如果图片无法在JSP页面中居中,可能的原因包括但不限于:图片的父元素没有正确设置样式、JSP容器默认的样式影响了布局、外部CSS链接未正确加载或存在冲突、以及浏览器缓存导致页面样式未更新等...

    HTML页面自动清理js、css文件的缓存(自动添加版本号)

    总的来说,自动添加版本号是解决浏览器缓存问题的有效手段,它可以确保用户始终能够获取到最新版本的CSS和JavaScript文件。通过JavaScript、服务器端语言或构建工具,开发者可以轻松地实现这一功能,从而提供更好的...

    JSP SSH DIV CSS 简单论坛

    这个“JSP SSH DIV CSS 简单论坛”项目可能是基于上述技术构建的一个小型社区交流平台。在这样的论坛中,用户可以注册、登录,发布和回复帖子,进行互动讨论。项目的结构可能包括以下几个主要部分: 1. **登录/注册...

    html实现自动清理js、css文件的缓存.docx

    HTML 实现自动清理 JS、CSS 文件的缓存方法 在 Web 开发中,缓存机制是非常重要的,缓存可以减少服务器的负载,提高页面的加载速度。然而,缓存也带来了一个问题,就是如何确保浏览器获取最新的资源文件?尤其是在...

    jsp css技术详解

    优化CSS和JSP的加载速度,可以通过合并CSS文件减少HTTP请求,利用CSS Sprites技术减少图片请求,以及使用CDN(内容分发网络)加速静态资源的加载。对于JSP,合理地控制作用域、避免过多的脚本let块和scriptlet,以及...

    java web在线考试系统,框架:html + js + css + jsp + servlet

    框架:html + js + css + jsp + servlet + java + mysql 前端:html + js + css 后端:jsp + servlet + java + mysql 开发工具:ideaIC-2022.3.2.exe 或者eclipse都行 + jdk1.8 + Apache Tomcat/8.5.78 ...

    用js+css+jsp做的Tab分页

    【标题】"用js+css+jsp做的Tab分页"涉及到的是前端开发中的一个常见功能——Tab切换分页。在网页设计中,Tab分页是一种常见的信息组织方式,它允许用户在有限的空间内展示多个相互关联的内容板块,通过点击不同的Tab...

    jsp超经典图片展示

    JSP结合了HTML、CSS、JavaScript等前端技术与Java语言的后端处理能力,使得开发者可以方便地实现动态内容的生成。本教程将深入探讨如何在JSP中进行图片展示,这一主题对于构建互动性强、视觉效果丰富的网站至关重要...

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

    但是,有一个小问题没有解决,就是如果我的资源文件变了,比如css文件有修改,当我服务端发布之后,用户这边还是会存在缓存。最好的效果时当文件有改变时或者说当服务端的程序重启之后,用户的请求需要下载服务端的...

    java 缓存机制

    为了兼顾两者,开发者可能会在Java后端生成JSON格式的消息,以供前端JavaScript使用,同时保持CSS和JavaScript的灵活性。 综上所述,Java缓存机制涉及到声明式缓存的使用、缓存抽象的理解以及Web开发中的会话管理、...

    JSP 开发之Servlet解决网页缓存问题

    浏览器为了提高用户体验,会自动缓存访问过的网页内容,包括HTML、CSS、JavaScript文件以及图片等资源。当用户再次访问同一URL时,浏览器会先检查本地缓存,如果发现资源未过期,则直接从缓存中读取,避免了重复请求...

Global site tag (gtag.js) - Google Analytics