本文参考: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>
分享到:
相关推荐
综上所述,通过使用Java的Servlet Filter,我们可以实现对用户session的有效验证,防止未授权访问,并且可以控制页面不被浏览器缓存,提高系统的安全性。在实际开发中,我们可能还需要结合其他安全措施,如CSRF防护...
4. 使用缓存服务器:缓存服务器可以缓存Web页面的内容,以便快速响应浏览器的请求。 如何设置缓存 设置缓存需要根据具体情况选择合适的缓存策略。以下是一些常见的缓存策略: 1. 使用Struts2的缓存机制:Struts2...
(3)并不是所有的浏览器都能完全支持上面的3个响应头,因此最好是同时使用上面的3个响应头。 2、Filter的理解和应用 设计一个简单的IP地址过滤器,根据用户的IP地址进行网站的访问控制。例如:禁止IP地址处在192....
### Ehcache 整合Spring 使用页面、对象缓存 #### 一、Ehcache简介与特点 Ehcache是一款开源的、高性能的Java缓存框架,它可以用来存储、检索短期数据,以减轻数据库的压力,提高应用程序性能。Ehcache不仅支持...
在本篇文章中,我们将深入探讨如何使用Servlet过滤器来实现缓存机制,以此提高Web应用的性能。 首先,我们需要了解什么是缓存。缓存是一种存储技术,用于临时存储频繁访问的数据,以便快速检索。在Web应用中,通过...
这时可以考虑使用过滤器(Filter)来统一管理所有JSP页面的缓存控制。创建一个简单的过滤器如下: ```java public class NoCacheFilter implements Filter { @Override public void init(FilterConfig filterConfig...
在Laravel框架中,缓存是提升应用性能的关键技术之一...总之,`laravel-cache-filter`为Laravel开发者提供了一种便捷的方式来实现响应级别的缓存,通过合理配置和使用,可以有效提升Web应用的响应速度,改善用户体验。
而oscache更专注于Web页面的缓存,简化了静态内容的重复生成,提高页面加载速度,适用于Web应用的优化。 两者在使用场景上有明显区别,ehcache通常在业务逻辑层处理,oscache则在展示层发挥作用。在选择缓存方案时...
这时,可以使用Servlet Filter或自定义Tag Library来拦截请求,根据条件判断是否从缓存中读取数据,或者在数据更新后更新缓存。例如,我们可以使用Spring框架的`Cache`抽象层来管理缓存,或者使用第三方库如Ehcache...
- **HTTP请求结果的缓存**:包括浏览器缓存、代理缓存、服务器端方向代理缓存以及使用Filter实现对请求结果页面的缓存。 - **Java对象的缓存**:主要指缓存数据库查询结果对象。 ##### 1.2 缓存介质[保存在哪里] ...
- `eternal`属性控制是否允许缓存项过期。 - `overflowToDisk`表示当内存不足时是否将数据溢出到磁盘。 - `diskSpoolBufferSizeMB`定义了磁盘缓冲区大小。 - `timeToIdleSeconds`和`timeToLiveSeconds`分别定义...
### Java中的Filter(过滤器)使用详解 #### 一、Filter概述 在Java Web开发中,`Filter`是一种非常实用的技术,它可以在请求到达目标资源(如Servlet或JSP页面)之前进行预处理,或者在响应返回客户端之前进行后...
在Java Web开发中,`Filter`是一种功能强大的机制,它能够拦截客户端请求,并在请求到达目标资源(如Servlet)之前或之后进行处理。这为开发者提供了极大的灵活性来添加诸如编码处理、登录验证、权限检查等功能。 #...
### 细谈Ehcache页面缓存的使用 在当今高度动态且数据密集型的应用环境中,缓存技术扮演着至关重要的角色。Ehcache作为一款高性能、轻量级的Java缓存框架,被广泛应用于各种场景中以提高系统的响应速度和整体性能。...
标题 "OSCACHE配置URL实现页面缓存的Filter(修改配置无需重启)" 提示我们讨论的是一个使用OSCache(OpenSymphony Cache)库来缓存Web应用程序中特定URL页面的过滤器配置。OSCache是一个开源的Java缓存框架,用于提高...
通过上述方式,OSCache允许开发者灵活地控制页面和部分内容的缓存策略,优化Web应用性能。在分布式环境中,缓存策略的合理运用能有效提高系统的响应速度和用户体验,减少服务器负载,是现代Web应用程序不可或缺的...
5. **缓存控制**: 添加合适的HTTP头部信息,如Cache-Control,控制客户端缓存策略。 在实际开发中,Filter可以帮助我们实现各种定制化的功能,提高代码的可维护性和灵活性。理解并熟练掌握Filter的使用,对于提升...
1. **强制缓存**:通过`Expires`和`Cache-Control`头来控制,如果满足条件则直接使用缓存,不向服务器发送请求。 2. **协商缓存**:当强制缓存失效时,客户端会向服务器发送带有缓存验证信息(如`If-Modified-Since`...