一個簡單的Cookie得操作類(java)

首先java對cookie的操作有三種方式,

1種是:j2ee中的 javax.servlet.http.Cookie類操作

2種是:j2se中的 java.net.CookieHandler類的操作

3中是:Apache旗下的org.apache.http.cookie.Cookie類的操作;

本文是基於第一種編寫的,也是最簡單的方式。

package test; import java.util.Hashtable; import java.util.Iterator; import java.util.Set; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Cookie的操作類 * @author shy.qiu * */ public class CookieHandler { /** * 創建cookie * * @param response * 迴應 * @param nameValues * 存入cookie的鍵值對 * @param days * 設置cookie的有效期 */ public static void createCookie(HttpServletResponse response, Hashtable<String, String> nameValues, int days) { Set<String> set = nameValues.keySet(); Iterator<String> it = set.iterator(); for (; it.hasNext();) { String name = (String) it.next(); String value = (String) nameValues.get(name); // 生成新的cookie Cookie cookie = new Cookie(name, value); // 設置有效日期 cookie.setMaxAge(days * 24 * 60 * 60); // 設置路徑(默認) cookie.setPath("/"); // 把cookie放入響應中 response.addCookie(cookie); } } /** * 讀取Cookie * * @param request * @return Hashtable 返回cookie的鍵值對 */ public static Hashtable<String, String> getCookies( HttpServletRequest request) { Cookie[] cookies = request.getCookies(); Hashtable<String, String> cookieHt = new Hashtable<String, String>(); if (cookies.length > 0) { for (int i = 0; i < cookies.length; i++) { Cookie cookie = cookies[i]; cookieHt.put(cookie.getName(), cookie.getValue()); } } return cookieHt; } /** * 修改cookie中指定鍵的值 * * @param request * @param name * 指定的鍵 * @param value * 值 */ public static void setCookieValueByName(HttpServletRequest request, String name, String value) { Cookie[] cookies = request.getCookies(); if (cookies.length > 0) { for (int i = 0; i > cookies.length; i++) { if (name.equalsIgnoreCase(cookies[i].getName())) { cookies[i].setValue(value); } } } } /** * 得到指定鍵的值 * * @param request * @param name * 指定的鍵 * @return String 值 */ public static String getCookieValueByName(HttpServletRequest request, String name) { Cookie[] cookies = request.getCookies(); String resValue = ""; if (cookies.length > 0) { for (int i = 0; i > cookies.length; i++) { if (name.equalsIgnoreCase(cookies[i].getName())) { resValue = cookies[i].getValue(); } } } return resValue; } /** * 銷燬cookie * * @param request * @param response */ public static void deletesCookie(HttpServletRequest request, HttpServletResponse response) { Cookie[] cookies = request.getCookies(); if (cookies != null) { for (int i = 0; i < cookies.length; i++) { Cookie cookie = cookies[i]; // 銷燬 cookie.setMaxAge(0); response.addCookie(cookie); } } } }


對於第二種方式一值沒有用過:做一個連接 http://www.iteye.com/post/300654

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章