3.2K Star 8.8K Fork 3.6K

GVPJFinal / JFinal

 / 详情

controller 中的removeCookie(String name)方法的问题

已完成
创建于  
2016-01-13 15:34

jfinal2.0升级到jfinal2.1后,发现用户登出后cookie无法删除;
不是很清楚新版本中这样写的目的,默认set的cookie path是"/"
那么删除时如果不用removeCookie(String name, String path),cookie就删不掉;
那removeCookie(String name)这个方法什么时候用呢??

jfinal 2.0
/**
 * Remove Cookie with path = "/".
 */
public Controller removeCookie(String name) {
	setCookie(name, null, 0, "/", null);
	return this;
}
jfinal2.1
/**
 * Remove Cookie.
 */
public Controller removeCookie(String name) {
    return doSetCookie(name, null, 0, null, null, null);
}    

评论 (10)

其实是可以删除的,只不过 jfinal 2.0 版本的时候指定了 path为 "/"而升级后没指定,被认定不是同一个 cookie,所以删不掉,手动在浏览器里面清一下这个 cookie,然后再试下,记得回来反馈,确保万无一失。 jfinal 2.1 之所以这么做,是不想去默认干预 path 值,这样在逻辑上更严谨,因为有时候用户确实不想设置path,也不想框架去干预

setcookie不指定path后,cookie使用出现问题
cookie path 会set成当前请求路径
输入图片说明
输入图片说明"/"

@erimer oh my god! 我测试的时候没有这样结论,难道不同的环境结果同? 你那是什么环境:tomcat、jetty ? 我还特意测试过不同路径下的情况,当时是没有问题的,希望得到你的反馈

浏览器:safari & chrome
运行环境:Tomcat 8.0.0-RC10
操作系统:osx el 10.11.2

还在找是不是其他问题导致的,目前暂时使用指定 path="/";

@erimer 我再重新测试一下,感谢反馈,有新消息,麻烦随时通知我,去 jfinal 官方群找群主:JFinal极速开发官方群 322076903

@JFinal 不指定path, 我测试safari 还OK 微信浏览器会获取不到cookie

从2.0 升级2.1 后

@MRZ 这两天正在考虑解决,感谢反馈,周一时关注一下,打算升级

@erimer @MRZ 现在可以通过升级到 jfinal 2.2 来解决问题了:http://www.oschina.net/news/70001/jfinal-2-2

状态更改为 已关闭

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(3)
840 jfinal 1580661334 4601 konbluesky 1578914268
Java
1
https://gitee.com/jfinal/jfinal.git
git@gitee.com:jfinal/jfinal.git
jfinal
jfinal
JFinal

搜索帮助

344bd9b3 5694891 D2dac590 5694891