一个简单的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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值