`
rentianchou
  • 浏览: 69640 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多
在A项目中登陆后才能访问B项目,所以在项目中使用了cookie,cookie保存了用户的加密信息。而就在注销的时候我却遇到了问题,问题是当我注销后我存入的cookie却依旧存在。我于是怀疑我代码段出现了问题,代码如下:

删除cookie调用的方法(这里用的是spring的MVC)
/**
	 * 用户注销
	 */
	@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呢,明明是赋值了的呀,后来承蒙一位高人的指点详见http://xiaolongfeixiang.iteye.com/blog/656454知道服务器端是得不到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成功删除。
分享到:
评论
1 楼 xiaolongfeixiang 2010-05-11  
呵呵,能够自我分析、调试、解决问题。很不错,继续努力!!

相关推荐

    jquery 设置cookie、删除cookie、获取cookie

    首先,确保您的项目环境中已经包含了 jQuery 库。可以使用 CDN 方式引入 jQuery 和 jQuery Cookie 插件,如下所示: ```html &lt;!DOCTYPE html&gt; &lt;title&gt;jQuery Cookie Example &lt;!-- 引入 jQuery --&gt; ...

    易语言源码易语言枚举并删除指定Cookie源码.rar

    4. **删除指定Cookie**:删除Cookie通常不是简单地从本地文件系统中移除,而是通过创建一个具有相同名称但过期时间设置为过去的Cookie来实现。这样,浏览器在下次请求时会将其视为过期并自动删除。在易语言中,需要...

    前端项目-js-cookie.zip

    无论是在简单的应用场景还是在复杂的前端项目中,它都能作为一个可靠的工具,帮助我们更好地处理客户端的数据存储需求。在实际开发中,结合合适的策略和最佳实践,js-cookie可以帮助提升用户体验并保障应用的安全性...

    java操作cookie示例(删除cookie)

    删除Cookie的关键在于创建一个新的同名Cookie,但将其`setMaxAge()`设置为0,然后再次添加到响应中: ```java Cookie cookieToRemove = new Cookie("key", null); cookieToRemove.setMaxAge(0); cookieToRemove.set...

    开源项目-pborges-editthiscookie.zip

    EditThisCookie是一款强大的浏览器扩展,允许用户查看、编辑、添加和删除网站的Cookie,而这个Func库则是将其功能集成到编程环境中的桥梁。 在深入探讨这个开源项目之前,我们需要了解一些基本概念。首先,Cookie是...

    JavaWeb 中Cookie实现记住密码的功能示例

    在JavaWeb开发中,Cookie是一种常见的技术,用于在客户端(用户的浏览器)和服务器之间传递信息。这个技术在实现“记住密码”或“自动登录”功能时尤其有用。下面我们将深入探讨Cookie的工作原理、优势以及如何在...

    利用Cookie实现购物车.rar

    通过创建、读取、更新和删除Cookie,我们可以轻松地在客户端存储和管理购物车信息,为用户提供便捷的在线购物体验。同时,也要注意在实现过程中对数据安全性和性能的考量,确保系统的稳定和用户满意度。

    silverlight中cookie的使用

    这些集合提供了添加、修改和删除Cookie的便利方法。例如: ```csharp // 获取或创建Cookie HttpCookie myCookie = Request.Cookies["MyCookieName"]; if (myCookie == null) { myCookie = new HttpCookie(...

    Cookie简介及JSP处理Cookie的方法.doc

    如果设置为负值,表示浏览器会话结束时删除Cookie;如果为0,会立即删除Cookie;正数值则表示具体的有效期。 - `setPath(String uri)`:定义Cookie的适用路径。默认情况下,Cookie只适用于当前页面所在的目录及其子...

    使用Cookie记录用户名和密码

    在这个场景下,我们将讨论如何利用Cookie来安全地存储用户的登录凭证,以便在用户下次访问网站时能自动识别其身份。 首先,我们需要理解Cookie的基本原理。当用户成功登录后,服务器可以创建一个包含用户名和加密后...

    基于Vue 服务端Cookies删除的问题

    一般在我们做项目时,我们都会通过POST请求拿到服务器给到的set-Cookies,保存在浏览器的Cookie里 这里需要明确一点。缓存有三类 cookie、 sessionStorage 、localStorage cookie: 存储在用户本地终端上的数据。有时...

    网页删除空cookie易语言源码

    网页删除空cookie易语言源码是一个关于Web编程和易语言(E Language)的实践案例,主要涉及了HTTP请求、Cookie管理以及程序逻辑处理等技术。易语言是一种中国自主研发的编程语言,以其简单易学的特点而受到许多初学...

    vue中设置、获取、删除cookie的方法

    Vue中设置、获取、删除cookie的方法主要包括在Vue项目中通过编写相应的JavaScript函数来操作cookie,以下是详细的知识点。 1. cookie的基本原理和用途 Cookie是一种小型文本文件,由网站服务器发送至用户的浏览器并...

    CookiesjsJavaScript客户端的Cookie操作库

    作为客户端库,它使得开发者无需后端服务器参与就能创建、读取、更新和删除Cookie,增强了前端应用对用户状态的管理能力。 **标签解析:** "JavaScript开发-其它杂项" 暗示了Cookies.js是JavaScript开发工具的一...

    Cookie项目源码

    在IT领域,尤其是在Web开发中,Cookie...在这个项目中,开发者可以了解到Cookie在实际应用中的具体实现,掌握BS架构下客户端和服务器间的数据交换机制,同时还能学习到如何利用jQuery插件简化前端操作,提升开发效率。

    java中cookie的使用教程

    本文将深入讲解Java中Cookie的使用方法,包括创建、设置、读取和删除Cookie,以及其在Web应用程序中的作用。 1. **Cookie的基本概念** - **定义**:Cookie是服务器发送到用户浏览器并存储在本地的一小块数据,当...

    易语言cookie管理.rar

    它可能包括了添加Cookie、获取Cookie、更新Cookie和删除Cookie等操作。通过这个模块,开发者可以方便地在自己的易语言程序中集成Cookie管理功能,无需从头编写相关代码。 在开发过程中,了解Cookie的工作原理及其在...

    易语言枚举并删除指定Cookie源码.zip易语言项目例子源码下载

    易语言枚举并删除指定Cookie源码.zip易语言项目例子源码下载易语言枚举并删除指定Cookie源码.zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.适合小团队开发项目参考

    jsp操作cookie实例

    本实例将详细介绍如何在JSP中创建、读取、更新和删除Cookie。 ### 一、创建Cookie 创建Cookie主要通过HttpServletResponse对象的`addCookie(Cookie cookie)`方法。首先,我们需要创建一个Cookie对象,并设置其属性...

    JAVA Cookie JSON 项目中应用

    //根据cookies key值删除cookie function delCookie(name) /** * json对象转字符串形式 */ function json2String(jsonObj) /** * json字符串转json对象 */ var jsonObj = eval('('+jsonStr+')') 后台Java解析json

Global site tag (gtag.js) - Google Analytics