/** * 通联支付-研发中心 * @author zhanggh * 2014-6-25 * version 1.0 * 说明:页面缓存过滤器 */ package com.mtools.core.plugin.web.filter; import java.util.Iterator; import java.util.Map; import java.util.Set; import javax.servlet.http.HttpServletRequest; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter; /** * 功能:对post表单的值进行过滤 * @date 2014-6-25 */ public class SimplePageCachingExtFilter extends SimplePageCachingFilter { public Log log = LogFactory.getLog(this.getClass()); @SuppressWarnings({ "rawtypes", "unchecked" }) protected String calculateKey(HttpServletRequest httpRequest) { String serverHost = httpRequest.getHeader("Host"); StringBuffer query=new StringBuffer(); if(httpRequest.getMethod().equalsIgnoreCase("post")){ Map map = httpRequest.getParameterMap(); Set<Map.Entry> set = map.entrySet(); for(Iterator<Map.Entry> it = set.iterator(); it.hasNext();){ Map.Entry entry = (Map.Entry) it.next(); String[] vals=(String[]) entry.getValue(); log.debug("key:"+entry.getKey()+"--"+"value:"+vals[0]); query.append(entry.getKey()).append("=").append(vals[0]).append("&&"); } }else{ query.append(httpRequest.getQueryString()); } query.append("serverHost=").append(serverHost); StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append(httpRequest.getMethod()).append(httpRequest.getRequestURI()).append(query); String key = stringBuffer.toString(); return key; } }