cookie不能获取自己设置的,只能获取系统的名字为JSESSIONID的cookie的解决办法

今天在做一个登陆页面,实现在一定时间内反复登陆不用输入密码。为了和其他网站的cookie做区别,我开始使用的cookie的name是当前网站的路径basePath

String path = request.getContextPath();//形如 /J2ee
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort() + path + "/";

new  cookie(basePth,user)

这样程序不报错,而且浏览器中叶保存了我的设置的cookie,但是就是去不出来,后来发现cookie中的name不能包含分号、逗号、等号、空格、换行,否则需要编码,用BASE64Encoder或URLEncoder。但是可以用/_符号,(就是说可以name可以用path)

另外,还有些注意的是cookie必须设置时间和路径,不然其他页面找不到这个cookie在哪里(本页面中还是可以找到的)

cookie.setMaxAge(10*60);
cookie.setPath(request.getContextPath());//表示只有本项目地址下的所有位置可取如:cookie.setPath(/J2ee)表示只有J2ee工程下的所有位置可取这个cookie


清楚cookie办法:

清除cookie也就是覆盖之前的cookie,新的cookie和以前的cookie的name 一样就可以覆盖之前的cookie

//cookie中的用户信息清空
Cookie cookie = new Cookie(path, null);//path就是cookie的名字,要和被覆盖的cookie的名字一样
cookie.setMaxAge(0);//0指0秒,设置为null 后立即失效
cookie.setPath(request.getContextPath());//千万不可少,不然这个站点找不到这个cookie

//切记 设好cookie 后要加入response中
response.addCookie(cookie);



清除session,就是把之前那个session的值设为null

request.getSession().setAttribute("user", null);

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EmineWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值