关于项目中不能删除cookie的问题

[/code]在A项目中登陆后才能访问B项目,所以在项目中使用了cookie,cookie保存了用户的加密信息。而就在注销的时候我却遇到了问题,问题是当我注销后我存入的cookie却依旧存在。我于是怀疑我代码段出现了问题,代码如下:
删除cookie调用的方法(这里用的是spring的MVC)
[code="java"]/**
* 用户注销
*/
@RequestMapping("/exitUser.htm")
public void exitUser(HttpServletRequest request,
HttpServletResponse response,SessionStatus status) {

CookieUtil.delCookie(request, response, WebConstant.COOKIE_DAMAIN_NAME);
status.setComplete();

HttpSession session = request.getSession(false);
if(session!=null){
session.removeAttribute("user");
session.removeAttribute("userSites");
session.invalidate();
}
}

cookieutil类的删除方法如下:

public static void delCookie(HttpServletRequest request,HttpServletResponse response,String key){

Cookie cookie = new Cookie(key, null);
cookie.setMaxAge(WebConstant.Cookie_MIN_AGE);//最小值为0,已设为常量
cookie.setPath("/");
cookie.setDomain(WebConstant.DOMAIN);//WebConstant.DOMAIN已设为常量
response.addCookie(cookie);

}

而且打断点也执行了该方法,但是我怎么看也看不出问题。那么我想是不是cookie.setMaxAge这个方法无效了呢?于是我又打断点查找该cookie,通过断点,我看到cookie的MaxAGE属性是-1,无论如何怎样赋值都得到的是-1。为什么始终是-1呢,明明是赋值了的呀,后来承蒙一位高人的指点详见[url]http://xiaolongfeixiang.iteye.com/blog/656454[/url]知道服务器端是得不到cookie的生存时间的。
那应该是什么问题导致没有删除呢?于是我又做了个单独的例子,发现调用同样的方法是可以删除的啊!
实在找不出答案了,我又看了下jsp,代码如下:
<a href="#" onclick="logout();" ><span>退出</span></a>

<iframe style="display:none" name="logout_frame"></iframe>
<iframe style="display:none" name="logout_frame_group"></iframe>
<form action="${ctx }/exitUser.htm" name= "userLogout"
target="logout_frame" method="GET">
</form>
<form action="${ctx_group }/groupCancel.do" name = "groupLogout"
target="logout_frame_group" method="GET">
</form>
<script type = "text/javascript">
function logout(){
try{
document.groupLogout.submit();
document.userLogout.submit();
}catch(err){}
window.location.href="http://www.jobqun.com/jsp/login.jsp";
}<!-- 因为两个web应用的session都必须清空,所以2次提交 -->

</script>

当我把红色部分注释掉后,发现cookie终于成功删除了,至于为什么我也真的没有想通,我想会不会是提交太快了,导致浏览器中断了前天的方法而执行后面的方法。与是又把代码改成了这样
function logout(){
try{
document.groupLogout.submit();
document.userLogout.submit();
}catch(err){}
setTimeout("window.location.href=http://www.jobqun.com/jsp/login.jsp",200);
}

cookie成功删除。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值