java Cookie 获取历史记录列表(三)

 
  1. /** 
  2.      * 获取Cookie里面的东西 
  3.      */  
  4.     protected List<String> getCookieList() {  
  5.         Cookie[] cookies = null;  
  6.         Cookie cookie = null;  
  7.         String cookieValue = null;  
  8.         String cookieName = null;  
  9.         cookies = request.getCookies();  
  10.         if(cookies==null){  
  11.             return null;  
  12.         }  
  13.   
  14.         List<String> cookieList = new ArrayList<String>();  
  15.         for (int i = cookies.length - 1; i >= 0; i--) {  
  16.             cookie = cookies[i];  
  17.             try {  
  18.                 cookieValue = URLDecoder.decode(cookie.getValue(),"UTF-8");  
  19.             } catch (UnsupportedEncodingException e) {  
  20.                 e.printStackTrace();  
  21.             }  
  22.             cookieName = cookie.getName();  
  23.             int cookieNameIndex = 0;  
  24.             cookieNameIndex = cookieName.indexOf("search");  
  25.             if (cookieNameIndex != -1 && cookieValue!= null && StringUtils.isNotBlank(cookieValue)) {  
  26.                 cookieList.add(cookieValue);  
  27.             }  
  28.         }  
  29.         //去重  
  30.         removeDuplicate(cookieList);  
  31.         //取记录  
  32.         List<String> searchList = new ArrayList<String>();  
  33.         int index = 0;  
  34.         for(int i=0;i< cookieList.size(); i++){  
  35.             if(index< Constants.COOKIES_NUM){  
  36.                 searchList.add(cookieList.get(i));  
  37.             }  
  38.             index++;  
  39.         }  
  40.         return searchList;  
  41.     }  
  42.     //去重  
  43.     private static void removeDuplicate(List list) {  
  44.         for (int i = 0; i < list.size() - 1; i++) {  
  45.             for (int j = list.size() - 1; j > i; j--) {  
  46.                 if (list.get(j).equals(list.get(i))) {  
  47.                     list.remove(j);  
  48.                 }  
  49.             }  
  50.         }  
  51.     }  
  52. //设置  
  53.     protected void setCookie(String keyWord){  
  54.         try {  
  55.             //关键点  
  56.             keyWord = URLEncoder.encode(keyWord,"UTF-8");  
  57.         } catch (UnsupportedEncodingException e) { }  
  58.         Cookie cookie = new Cookie("search"+new Date().getTime(), keyWord);  
  59.         cookie.setPath("/");  
  60.         cookie.setMaxAge(60 * 60 * 24 * 365 * 1);  
  61.         response.addCookie(cookie);  
  62.     }  
  63. //删除  
  64.     protected void removeCookie(){  
  65.         Cookie[] cookies = request.getCookies();  
  66.         for (Cookie cookie:cookies){  
  67.             cookie.setMaxAge(0);  
  68.         }  
  69.     }  



如果cookie 考虑前端被禁掉的话可以考虑参考这段代码

原文地址:https://www.cnblogs.com/MaxElephant/p/8252215.html