亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

使用filter實現url級別內存緩存示例

2019-11-26 15:35:04
字體:
來源:轉載
供稿:網友

用到了fastJson用來解析配置,原理是通過自己實現response類來得到輸出的內容

復制代碼 代碼如下:

package saleandbuy.freemodule.web.filter;

import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class CacheResp {
 private long waitTime=1000*3;

 private static Map<String,CacheInfo> cfgMap=new HashMap<String, CacheResp.CacheInfo>();

 public static final String QUERY_STRINGS="queryStrings";
 public static final String CACHED_TIME="cachedTime";
 public static final String CACHE_CONFIG="cacheConfig";

 public static void config(String cfgJson) {
  JSONObject cfg=JSON.parseObject(cfgJson);
  for (Map.Entry<String, Object> entry : cfg.entrySet()) {
   String key=entry.getKey();
   Map<String, Object> value=(Map<String, Object>) entry.getValue();
   List queryStrings= (JSONArray)value.get(QUERY_STRINGS);
   Integer cachedTime=(Integer) value.get(CACHED_TIME);
   CacheInfo cacheInfo=new CacheInfo(queryStrings,cachedTime);
   cfgMap.put(key, cacheInfo);
  }
 }

 public static void cachedDo(HttpServletRequest request, HttpServletResponse response,FilterChain chain) throws IOException, ServletException {
  CacheInfo cacheInfo=getCacheInfo(request);
  String queryString=request.getQueryString();
  //cacheInfo為空則不需要緩存,不為空則需要緩存
  if(cacheInfo!=null){
   long now=System.currentTimeMillis();
   synchronized (CacheResp.class) {
    if(now-cacheInfo.lastUpdateTime>cacheInfo.cachedTime){
     System.out.println("not use cache:"); 
     ProxyResponse proxyResponse=new ProxyResponse(response);
     chain.doFilter(request, proxyResponse);
     cacheInfo.cacheMap.put(queryString, proxyResponse.getBuffer());
     cacheInfo.lastUpdateTime=now;
    }else {
     System.out.println("use cache");
    }
   }
   String cacheStr=cacheInfo.cacheMap.get(queryString).toString();
   response.getWriter().write(cacheStr);
  }else {
   chain.doFilter(request, response);
  }
 }

 private static CacheInfo getCacheInfo(HttpServletRequest request){
  String key=request.getRequestURI().replace(request.getContextPath(), "");
  CacheInfo cacheInfo=cfgMap.get(key);
  if(cacheInfo!=null&&
    cacheInfo.needCache(request.getQueryString())){
   return cacheInfo;
  }
  return null;
 }

 public static class CacheInfo{
  public List queryStrings=Arrays.asList(new String[]{"list","index"});
  public long cachedTime=1000;
  public long lastUpdateTime=0;
  public Map<String, StringBuffer> cacheMap=new HashMap<String, StringBuffer>();

  public CacheInfo(List queryStrings, Integer cachedTime) {
   super();
   if(cachedTime!=null){
    this.cachedTime = cachedTime;
   }
   this.queryStrings = queryStrings;
  }

  /**
   *
   * @param queryStrings request.getQueryString
   * @return
   */
  public boolean needCache(String queryStrings) {
   if(queryStrings==null){//queryStrings為空時默認緩存所有的查詢
    return true;
   }
   return queryStrings.contains(queryStrings);
  }

 }

 private static class ProxyResponse extends HttpServletResponseWrapper{

  private StringWriter sw=new StringWriter();

//  private ByteArrayOutputStream baos=new ByteArrayOutputStream();

  public ProxyResponse(HttpServletResponse response) {
   super(response);
  }

  @Override
  public PrintWriter getWriter() throws IOException {
   return new PrintWriter(sw);
  }

  public StringBuffer getBuffer() {
   return sw.getBuffer();
  }
 }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久999| 一本大道香蕉久在线播放29| 国产精品久久久久aaaa九色| 亚洲r级在线观看| 91精品啪aⅴ在线观看国产| 久久av红桃一区二区小说| 揄拍成人国产精品视频| 欧美在线视频a| 国产97免费视| 精品国产1区2区| 欧美日韩成人网| 亚洲国产精品女人久久久| 亚洲aaa激情| 永久免费精品影视网站| 亚洲a∨日韩av高清在线观看| 精品欧美激情精品一区| 中文字幕在线成人| 国产一区二区三区在线| 欧美成人免费网| 亚洲午夜女主播在线直播| 欧美—级高清免费播放| 亚洲人精选亚洲人成在线| 亚洲一区免费网站| 91精品在线观看视频| 成人黄色片在线| 国产日韩精品一区二区| 国产91露脸中文字幕在线| 欧美激情在线狂野欧美精品| 成人写真视频福利网| 超碰91人人草人人干| 久久精品影视伊人网| 久久久999成人| 成人免费看吃奶视频网站| 亚洲男人的天堂在线播放| 国产日韩中文在线| 日韩成人激情在线| 国产欧美精品一区二区三区介绍| 久久99热这里只有精品国产| 国产精品欧美一区二区三区奶水| 毛片精品免费在线观看| 欧美激情18p| 中文字幕亚洲国产| 成人免费视频a| 欧美成人午夜免费视在线看片| 亚洲国产美女精品久久久久∴| 久久影视免费观看| 国产欧美精品va在线观看| 日韩欧美在线观看视频| 中文字幕亚洲综合久久筱田步美| 亚洲女同性videos| 一个人看的www欧美| 欧美性高跟鞋xxxxhd| 国内外成人免费激情在线视频| 亚洲欧洲日韩国产| 国产精品久久99久久| 日韩日本欧美亚洲| 日本精品久久久久影院| 欧美精品手机在线| 久久精品视频导航| 97精品国产97久久久久久春色| 亚洲人成毛片在线播放| 亚洲精品乱码久久久久久金桔影视| 成人写真福利网| www.亚洲免费视频| 992tv成人免费视频| 亚洲韩国欧洲国产日产av| 最新的欧美黄色| 日韩精品中文字幕视频在线| 亚洲在线视频观看| 久久久久久久久中文字幕| 深夜福利亚洲导航| 欧美孕妇与黑人孕交| 日韩免费高清在线观看| 国产精品一区二区三区久久| 国产欧美日韩丝袜精品一区| 成人午夜黄色影院| 91精品国产99| 国产精品综合久久久| 欧美性xxxx极品高清hd直播| 一级做a爰片久久毛片美女图片| 欧美激情2020午夜免费观看| 91色琪琪电影亚洲精品久久| 国产a∨精品一区二区三区不卡| 精品无人国产偷自产在线| 77777少妇光屁股久久一区| 97久久精品国产| 欧美又大又粗又长| 国产亚洲欧美一区| 日韩中文字幕在线| 亚洲精品久久久久中文字幕二区| 日韩av网址在线| 久久久久久久久爱| 91久久久久久久| www.午夜精品| 91久久国产综合久久91精品网站| 粗暴蹂躏中文一区二区三区| 日本老师69xxx| 国产精品第100页| 8x海外华人永久免费日韩内陆视频| 福利微拍一区二区| 美乳少妇欧美精品| 欧美国产视频一区二区| 国产午夜精品全部视频在线播放| 欧美视频在线看| 国产免费久久av| 欧美日产国产成人免费图片| 日韩中文字幕在线播放| 欧美日韩在线免费| 欧美性高跟鞋xxxxhd| 狠狠色狠狠色综合日日五| 亚洲大胆人体视频| 91久久嫩草影院一区二区| 久久久精品2019中文字幕神马| 欧美激情视频在线观看| 国产精品九九九| 另类专区欧美制服同性| 国产视频久久久久久久| 亚洲999一在线观看www| 国产成人综合一区二区三区| 国产日韩换脸av一区在线观看| 亚洲国产一区自拍| 日韩一区二区在线视频| 国产精品成人免费电影| 日韩成人av网址| 国产精品高潮呻吟久久av无限| 日韩视频免费在线观看| 亚洲91精品在线| 俺去亚洲欧洲欧美日韩| 亚洲女同性videos| 久久99久久99精品中文字幕| 国产香蕉精品视频一区二区三区| 久久视频在线播放| 亚洲激情视频网站| 久久91精品国产91久久久| 亚洲男人天天操| 国产精品日日摸夜夜添夜夜av| 92国产精品久久久久首页| 欧美成人一区在线| 一区二区三区亚洲| 亚洲乱码国产乱码精品精天堂| 国产日韩欧美视频| 色天天综合狠狠色| 日韩中文字幕网址| 美女精品久久久| 中文字幕亚洲欧美在线| 日韩电影在线观看中文字幕| 日韩大片在线观看视频| 国产小视频国产精品| 久久久久亚洲精品| 欧美成人午夜激情视频| 中文字幕亚洲色图| 欧美最猛性xxxxx亚洲精品| 在线观看欧美日韩国产| 久久成人av网站| 亚洲国产成人91精品| 日本aⅴ大伊香蕉精品视频| 午夜精品一区二区三区在线播放| 亚洲欧美另类自拍| 久操成人在线视频| 欧美亚洲国产视频小说| 欧美一区二区三区免费视| 亚洲成成品网站| 97色在线视频观看| 欧美日韩中文字幕在线|