日常坑(Java Vert.x):cookie设置MaxAge=0,浏览器端未成功移除指定cookie

本文详细介绍了在Vert.x框架下如何通过设置Cookie的path、domain和maxAge来实现服务信息的写入与移除。特别指出,使用removeCookie方法可能无法有效删除Cookie,建议采用设置maxAge为0的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景:

使用vert.x开发Web端,登录时会在cookie写入服务信息,当新建session时,需要移除cookie中原有的服务信息。

设置cookie:

public void setCookie(RoutingContext routingContext){
    Cookie cookie = Cookie.cookie("X", java.net.URLEncoder.encode(boxName,"utf-8"));
    cookie.setPath("/");
    long age = 365 * 24 * 60 * 60;
    cookie.setMaxAge(age);// 如果不设置,默认为session的有效时长
    routingContext.addCookie(cookie);
}

移除cookie:

public void deleteCookie(RoutingContext routingContext){
    Cookie cookie = routingContext.getCookie("X");
	if (cookie != null){
	    cookie.setMaxAge(0L);
	    cookie.setPath("/");
	    routingContext.addCookie(boxNameCookie);
	}
}

如果在设置cookie时,设置了path和domain,移除的时候同样再设置对应属性,再加上maxAge=0,实现移除cookie目的。

另外,不要使用Vert.x框架中routingContext.removeCookie方法,跟代码发现,remove时只是设置了maxAge=0,无法有效移除cookie。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值