KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jdon > util > HttpResponseCacheFilter


1 package com.jdon.util;
2
3 import javax.servlet.*;
4 import javax.servlet.http.*;
5
6 import java.io.IOException JavaDoc;
7 import java.util.*;
8
9 /**
10  * 解决两个功能:
11  * 1. 设置http头部的expireå’Œlast-modified
12  * 具体应用程åº?,如论å?›çš„帖å­?,将帖å­?最å?Žæ›´æ–°æ—¥æœŸä¿?存到一个hashmap中,
13  * 本程åº?从这个hashmap获å?–更新日期,关键问题是如何确定key?
14  *
15  * 2. 防止å?Œä¸€ä¸ªIP在一秒内两次以上访问å?Œä¸€ä¸ªjsp文件。
16  *
17  * <filter>
18   <filter-name>
19    ResponseHeaderFilter</filter-name>
20   <filter-class>com.jdon.util.HttpResponseCacheFilter</filter-class>
21   <init-param>
22     <param-name>Cache-Control</param-name>
23     <param-value>max-age=3600</param-value>
24   </init-param>
25  </filter>
26  <filter-mapping>
27   <filter-name>ResponseHeaderFilter</filter-name>
28   <url-pattern>/logo.png</url-pattern>
29  </filter-mapping>
30  * <param-value>
31       private,no-cache,no-store</param-value>
32  * <p>Copyright: Jdon.com Copyright (c) 2003</p>
33  * <p></p>
34  * @author banq
35  * @version 1.0
36  */

37
38 public class HttpResponseCacheFilter implements Filter {
39   FilterConfig fc;
40   public void doFilter(ServletRequest req,
41                        ServletResponse res,
42                        FilterChain chain) throws IOException JavaDoc,
43       ServletException {
44
45     HttpServletResponse response = (HttpServletResponse) res;
46     // set the provided HTTP response parameters
47
for (Enumeration e = fc.getInitParameterNames(); e.hasMoreElements(); ) {
48       String JavaDoc headerName = (String JavaDoc) e.nextElement();
49       response.addHeader(headerName, fc.getInitParameter(headerName));
50     }
51     // pass the request/response on
52
chain.doFilter(req, response);
53   }
54
55   public void init(FilterConfig filterConfig) {
56     this.fc = filterConfig;
57   }
58
59   public void destroy() {
60     this.fc = null;
61   }
62
63 }
64
Popular Tags