`
whoosh
  • 浏览: 234947 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

使用Filter控制缓存WebCache

阅读更多

本文参考:http://www.the5fire.net/filter%E6%8E%A7%E5%88%B6%E7%BC%93%E5%AD%98webcache.html

首先建立一个WebCacheFilter.java来实现Filter:

package com.util;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class WebCacheFilter implements Filter {

    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest)request;
        HttpServletResponse res = (HttpServletResponse)response;
        //设定缓冲时间为5000秒
        res.setHeader("Cache-control", "max-age=5000");
       
        /*页面缓存设定
        * <br>确保浏览器不缓存页面数据
        res.setHeader("Cache-Control","no-cache");
        res.setHeader("Cache-Control","no-store");
        res.setDateHeader("Expires", 0);
        res.setHeader("Pragma","no-cache");
        */
       
        chain.doFilter(request, response);
    }

    @Override
    public void init(FilterConfig arg0) throws ServletException {
        // TODO Auto-generated method stub
       
    }

    @Override
    public void destroy() {
        // TODO Auto-generated method stub
       
    }

}

 然后配置web.xml文件,这里设定控制所有的gif文件和jpg文件。也就是从服务器端每隔5000秒才会发一次这种类型的文件过来(如果客户端进行请求的话):

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:javaee="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <filter>
        <filter-name>SessionFilter</filter-name>
        <filter-class>com.util.SessionFilter</filter-class>
    </filter>
   
    <filter-mapping>
        <filter-name>SessionFilter</filter-name>
        <url-pattern>*.jsp</url-pattern>
    </filter-mapping>
   
    <filter-mapping>
        <filter-name>SessionFilter</filter-name>
        <url-pattern>/servlet/*</url-pattern>
    </filter-mapping>
   
    <filter>
        <filter-name>WebCacheFilter</filter-name>
        <filter-class>com.util.WebCacheFilter</filter-class>
    </filter>
   
    <filter-mapping>
        <filter-name>WebCacheFilter</filter-name>
        <url-pattern>*.gif</url-pattern>
    </filter-mapping>
   
    <filter-mapping>
        <filter-name>WebCacheFilter</filter-name>
        <url-pattern>*.jpg</url-pattern>
    </filter-mapping>
</web-app>
 
分享到:
评论

相关推荐

    使用filter验证session用户和页面缓存问题处理

    综上所述,通过使用Java的Servlet Filter,我们可以实现对用户session的有效验证,防止未授权访问,并且可以控制页面不被浏览器缓存,提高系统的安全性。在实际开发中,我们可能还需要结合其他安全措施,如CSRF防护...

    如何解决缓存问题及如何设置缓存

    4. 使用缓存服务器:缓存服务器可以缓存Web页面的内容,以便快速响应浏览器的请求。 如何设置缓存 设置缓存需要根据具体情况选择合适的缓存策略。以下是一些常见的缓存策略: 1. 使用Struts2的缓存机制:Struts2...

    Web应用与开发作业

    (3)并不是所有的浏览器都能完全支持上面的3个响应头,因此最好是同时使用上面的3个响应头。 2、Filter的理解和应用 设计一个简单的IP地址过滤器,根据用户的IP地址进行网站的访问控制。例如:禁止IP地址处在192....

    Ehcache 整合Spring 使用页面、对象缓存

    ### Ehcache 整合Spring 使用页面、对象缓存 #### 一、Ehcache简介与特点 Ehcache是一款开源的、高性能的Java缓存框架,它可以用来存储、检索短期数据,以减轻数据库的压力,提高应用程序性能。Ehcache不仅支持...

    serlvet 的过滤器实现缓存机制

    在本篇文章中,我们将深入探讨如何使用Servlet过滤器来实现缓存机制,以此提高Web应用的性能。 首先,我们需要了解什么是缓存。缓存是一种存储技术,用于临时存储频繁访问的数据,以便快速检索。在Web应用中,通过...

    jsp去除浏览器缓存

    这时可以考虑使用过滤器(Filter)来统一管理所有JSP页面的缓存控制。创建一个简单的过滤器如下: ```java public class NoCacheFilter implements Filter { @Override public void init(FilterConfig filterConfig...

    Laravel开发-laravel-cache-filter

    在Laravel框架中,缓存是提升应用性能的关键技术之一...总之,`laravel-cache-filter`为Laravel开发者提供了一种便捷的方式来实现响应级别的缓存,通过合理配置和使用,可以有效提升Web应用的响应速度,改善用户体验。

    缓存说明.doc

    而oscache更专注于Web页面的缓存,简化了静态内容的重复生成,提高页面加载速度,适用于Web应用的优化。 两者在使用场景上有明显区别,ehcache通常在业务逻辑层处理,oscache则在展示层发挥作用。在选择缓存方案时...

    jsp 页面缓存

    这时,可以使用Servlet Filter或自定义Tag Library来拦截请求,根据条件判断是否从缓存中读取数据,或者在数据更新后更新缓存。例如,我们可以使用Spring框架的`Cache`抽象层来管理缓存,或者使用第三方库如Ehcache...

    iBATIS缓存介绍

    - **HTTP请求结果的缓存**:包括浏览器缓存、代理缓存、服务器端方向代理缓存以及使用Filter实现对请求结果页面的缓存。 - **Java对象的缓存**:主要指缓存数据库查询结果对象。 ##### 1.2 缓存介质[保存在哪里] ...

    缓存网页方法

    - `eternal`属性控制是否允许缓存项过期。 - `overflowToDisk`表示当内存不足时是否将数据溢出到磁盘。 - `diskSpoolBufferSizeMB`定义了磁盘缓冲区大小。 - `timeToIdleSeconds`和`timeToLiveSeconds`分别定义...

    java中filter的用法(过滤器)

    ### Java中的Filter(过滤器)使用详解 #### 一、Filter概述 在Java Web开发中,`Filter`是一种非常实用的技术,它可以在请求到达目标资源(如Servlet或JSP页面)之前进行预处理,或者在响应返回客户端之前进行后...

    Filter过滤器的概念和使用

    在Java Web开发中,`Filter`是一种功能强大的机制,它能够拦截客户端请求,并在请求到达目标资源(如Servlet)之前或之后进行处理。这为开发者提供了极大的灵活性来添加诸如编码处理、登录验证、权限检查等功能。 #...

    细谈Ehcache页面缓存的使用

    ### 细谈Ehcache页面缓存的使用 在当今高度动态且数据密集型的应用环境中,缓存技术扮演着至关重要的角色。Ehcache作为一款高性能、轻量级的Java缓存框架,被广泛应用于各种场景中以提高系统的响应速度和整体性能。...

    OSCACHE配置URL实现页面缓存的Fliter(修改配置无需重启)

    标题 "OSCACHE配置URL实现页面缓存的Filter(修改配置无需重启)" 提示我们讨论的是一个使用OSCache(OpenSymphony Cache)库来缓存Web应用程序中特定URL页面的过滤器配置。OSCache是一个开源的Java缓存框架,用于提高...

    基于OSCache的页面缓存

    通过上述方式,OSCache允许开发者灵活地控制页面和部分内容的缓存策略,优化Web应用性能。在分布式环境中,缓存策略的合理运用能有效提高系统的响应速度和用户体验,减少服务器负载,是现代Web应用程序不可或缺的...

    Filter知识点整理文档

    5. **缓存控制**: 添加合适的HTTP头部信息,如Cache-Control,控制客户端缓存策略。 在实际开发中,Filter可以帮助我们实现各种定制化的功能,提高代码的可维护性和灵活性。理解并熟练掌握Filter的使用,对于提升...

    HTML,JSP页面缓存的解决方案

    1. **强制缓存**:通过`Expires`和`Cache-Control`头来控制,如果满足条件则直接使用缓存,不向服务器发送请求。 2. **协商缓存**:当强制缓存失效时,客户端会向服务器发送带有缓存验证信息(如`If-Modified-Since`...

Global site tag (gtag.js) - Google Analytics