cookie小练习之CookieUtil类编写

cookie小练习之CookieUtil类编写


具体细节见代码及注释:

package util;

import java.net.URLDecoder;
import java.net.URLEncoder;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 此类实现了cookie的添加、删除、查找功能
 *
 */
public class CookieUtil {
	//方便设置cookie的路径
	private static String appName = "/web06";
	
	/**
	 * 添加cookie方法
	 * @param name  --cookie的名字
	 * @param value  --cookie的值
	 * @param age    --cookie的生存时间
	 * @param response  --响应对象
	 */
	public static void addCookie(String name,String value,int age,HttpServletResponse response){
		try {
			//URLEncoder.encode --处理中文编码问题
			Cookie c = new Cookie(name,URLEncoder.encode(value,"utf-8"));
			c.setMaxAge(age); //设置cookie的生存时间
			c.setPath(appName); //设置cookie的路径
			response.addCookie(c);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	
	/**
	 * 根据cookie的名字删除cookie
	 * @param name  --要删除的cookie的名字
	 * @param request  --请求对象
	 * @param response --响应对象
	 */
	public static void deleteCookie(String name,HttpServletRequest request,HttpServletResponse response){
		Cookie c1 = new Cookie(name,"");
		c1.setMaxAge(0);
		c1.setPath(appName);
		response.addCookie(c1);
	}
	
	/**
	 * 根据cookie的名字查找cookie的值
	 * @param name    --cookie的名字
	 * @param request --请求对象
	 * @return   返回对应的value,没有返回null
	 */
	public static String findCookie(String name,HttpServletRequest request){
		String value = null;
		Cookie[] cookies = request.getCookies();
		if(cookies != null){
			for(int i=0;i<cookies.length;i++){
				Cookie c = cookies[i];
				if(c.getName().equals(name)){
					try {
						//URLDecoder.decode --解码 将ascii码转换成相应的中文
						value = URLDecoder.decode(c.getValue(),"utf-8");
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			}
		}
		return value;
	}
	
}

测试代码:

package web;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import util.CookieUtil;

public class TestCookieUtil extends HttpServlet {
	public void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		String value = CookieUtil.findCookie("name",request);
		if(value != null){
			out.println("value:"+value+" <br/>");
		}else{
			CookieUtil.addCookie("name", "zhangsan", 100, response);
		}
		out.close();
	}

}



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值