javaweb-cookie

一、基本使用

1.1 响应cookie

服务端返回客户端cookie

@RequestMapping(value = "testCookie")
public String testCookie(HttpServletResponse resp) {
	Cookie cookie = new Cookie("k1", "v1");
	resp.addCookie(cookie);
	System.out.println("testCookie");
	return "success";
}

效果

1.2 返回多个cookie

返回多个cookie,相同键的cookie直接覆盖值

Cookie cookie1 = new Cookie("k1", "v1-1");
Cookie cookie2 = new Cookie("k2", "v2");
Cookie cookie3 = new Cookie("k3", "v3");
resp.addCookie(cookie1);
resp.addCookie(cookie2);
resp.addCookie(cookie3);

1.3 响应文本格式

resp.setContentType("text/html;charset=utf-8");

1.4 查找特定的键

for (Cookie cookiekv:cookies) {
	if ("k1".equals(cookiekv.getName())) {
	    WantCookie=cookiekv;
        break;
	}
	//说明找到了需要的cookie
	if (iWantCookie!=null) {
		resp.getWriter().write("cookie已经赋值");
        break;
	}
}

1.5 修改cookie值

本质都是通过resp.addCookie(cookie);覆盖

  • 直接覆盖
  • 通过1.4 找到相应cookie
//找到相应cookie,直接修改
cookie.setValue("k1-updata");
//通知客户端
resp.addCookie(cookie);

cookie值不能使用中文空格等,具体参照jdk文档

返回中文cookie值需要base64编码

1.6 浏览器删除cookie

  • chrome

  • 火狐

右键删除

二、生命周期

2.1 生命周期

  1. 正数:指定时间(CMT 秒)
  2. 负数:浏览器关闭就销毁(默认值-1),session级别
  3. 0:立即销毁,1970
cookiekv.setMaxAge(1);

2.2 设置配置url

可以设置必须匹配的前缀(过滤路径),匹配正确返回cookie否则不返回

路径:http://ip:port/工程路径/资源/param

//获取工程路径
String path = req.getContextPath();
cookiekv.setPath(path+"/abc");

2.3 jstl隐含对象cookie

${cookie.username.value}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值