转载:
http://elan1986.iteye.com/blog/1409504
- import java.io.*;
- import javax.servlet.*;
- import javax.servlet.http.*;
- import java.util.*;
- public class ResponseHeaderFilter implements Filter {
- FilterConfig fc;
- public void doFilter(ServletRequest req, ServletResponse res,
- FilterChain chain) throws IOException,ServletException {
- HttpServletResponse response = (HttpServletResponse) res;
- for (Enumeration e=fc.getInitParameterNames(); e.hasMoreElements();) {
- String headerName = (String)e.nextElement();
- response.addHeader(headerName, fc.getInitParameter(headerName));
- }
- chain.doFilter(req, response);
- }
-
- public void init(FilterConfig filterConfig) {
- this.fc = filterConfig;
- }
-
- public void destroy() {
- this.fc = null;
- }
- }
缓存
- <filter>
- <filter-name>ResponseHeaderFilter</filter-name>
- <filter-class>com.jspbook.ResponseHeaderFilter</filter-class>
- <init-param>
- <param-name>Cache-Control</param-name>
- <param-value>max-age=3600</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>ResponseHeaderFilter</filter-name>
- <url-pattern>/logo.png</url-pattern>
- </filter-mapping>
不缓存
- <filter>
- <filter-name>ResponseHeaderFilter</filter-name>
- <filter-class>com.jspbook.ResponseHeaderFilter</filter-class>
- <init-param>
- <param-name>Cache-Control</param-name>
- <param-value>private,no-cache,no-store</param-value>
- </init-param>
- </filter>
分享到:
相关推荐
### jsp去除浏览器缓存详解 #### 一、引言 在Web开发中,为了提高用户体验及页面加载速度,浏览器通常会缓存...正确地管理浏览器缓存不仅可以提升用户体验,还能有效降低服务器负载,是Web开发中不容忽视的一个环节。
4. 使用缓存服务器:缓存服务器可以缓存Web页面的内容,以便快速响应浏览器的请求。 如何设置缓存 设置缓存需要根据具体情况选择合适的缓存策略。以下是一些常见的缓存策略: 1. 使用Struts2的缓存机制:Struts2...
除了服务器端缓存,还可以结合客户端缓存(如浏览器缓存)来进一步优化。客户端缓存通常依赖于HTTP头信息,服务器通过设置合适的缓存策略,可以让浏览器自动缓存静态资源,如CSS、JavaScript文件和图片。 总结来说...
- **HTTP请求结果的缓存**:包括浏览器缓存、代理缓存、服务器端方向代理缓存以及使用Filter实现对请求结果页面的缓存。 - **Java对象的缓存**:主要指缓存数据库查询结果对象。 ##### 1.2 缓存介质[保存在哪里] ...
- 在JSP页面中可以使用内置对象`response`来设置响应头,避免浏览器缓存页面: ```jsp ("Cache-Control", "no-cache, no-store, must-revalidate"); %> ("Pragma", "no-cache"); %> ("Expires", 0); %> ``` 5...
例如,对于静态资源(如图片、CSS、JavaScript文件),我们可以设置HTTP响应头来启用浏览器缓存。而在处理动态内容时,我们可能希望禁用缓存,以确保每次请求都能获取到最新的数据。在Filter中,我们可以根据URL路径...
其次,我们还可以通过修改HTTP响应头来控制浏览器缓存,比如在Java代码中使用过滤器(Filter)或者Servlet来设置: ```java response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // ...
文件上传通常在应用服务器如Tomcat中处理,通过Servlet或Filter接收上传请求,保存文件到服务器。Nginx可以作为反向代理,接收上传请求并转发到Tomcat。为了优化上传,可以配置Nginx的`client_max_body_size`来限制...
总的来说,Filter压缩是一种高效的数据压缩方法,它在现代互联网环境中扮演着不可或缺的角色。通过对数据进行智能处理,它能显著降低网络传输的成本,提高服务质量和用户体验。随着技术的不断发展,我们可以期待...
至于提供的文件列表,它们看似与JSF禁用浏览器缓存的主题不直接相关,但可能是与学习或教学相关的文档,如"Lesson 1 Building and Running 'Hello, World!' .doc"可能是JSF入门教程的一部分,而"OAF.ppt"可能是关于...
控制浏览器缓存 有时候,我们需要控制浏览器不缓存某些资源。例如,在开发过程中频繁更新页面,不希望浏览器使用旧的缓存版本。通过Filter可以轻松地实现这一点。 ```java HttpServletRequest request = ...
// 更全面的设置,禁止浏览器端或缓存服务器缓存当前页面信息 res.setHeader("Pragma", "no-cache"); res.setDateHeader("Expires", -1); res.addHeader("Cache-Control", "no-cache"); res.addHeader("Cache-...
1. 存储数据:在服务中,我们可以利用浏览器的localStorage或sessionStorage来持久化待办事项数据。 2. 提供接口:服务提供`getTasks()`和`saveTasks()`接口,分别用于获取和保存待办事项列表。 3. 注入服务:在组件...
同源策略是浏览器的一种安全机制,限制了来自不同源的HTTP请求,以防止恶意网站读取或修改敏感数据。然而,有时候我们需要允许来自不同源的请求,这时就需要用到CORS。 `cors-filter-1.7.jar` 是一个专门处理CORS...
当用户请求一个页面时,服务器对内容进行gzip压缩,然后发送给浏览器,浏览器接收到压缩后的数据后再解压,显示完整的页面。这样,尽管服务器和浏览器之间需要处理额外的压缩和解压过程,但总体上由于传输数据量的...
这时,可以使用防止浏览器缓存的过滤器来实现。过滤器通过设置HTTP响应头中的`Cache-Control`、`Pragma`和`Expires`字段,告诉浏览器不要缓存页面。例如,可以将`Cache-Control`设为`no-cache, no-store, must-...
4. **添加缓存控制**:通过设置响应头,控制浏览器缓存策略。 5. **安全过滤**:比如XSS防护、CSRF防护,防止恶意攻击。 6. **日志记录**:记录请求信息,便于分析系统性能和调试。 7. **URL重写**:例如,将非...
总的来说,Filter是JavaWeb开发中不可或缺的一部分,它提供了一种灵活的、非侵入式的扩展机制,使得开发者可以在不修改Servlet代码的情况下,对Web应用的行为进行定制和增强。通过巧妙地利用Filter,开发者可以构建...
该过滤器通过覆盖`doFilter`方法,在响应被发送到客户端之前,设置三个HTTP响应头:`Cache-Control`、`Pragma`和`Expires`,确保页面不会被浏览器缓存。`Cache-Control: no-cache`指示代理服务器或浏览器不要缓存该...