`
lonelydark
  • 浏览: 1974 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

关于cookie的问题

阅读更多
这几天在struts中弄了一下cookie,有一个比较郁闷的问题.流程是这样的.
用户登陆后.如果选择了记住密码就添加一个cookie;如果点击退出则清除cookie.同时返回到主面.主页面同时又执行了一个action.在这个action中又获取了一次cookie判断有没有值.

现在的问题是:我需要点击两次退出,才能清除cookie.

也不知道是不是路径的问题,于是在添加cookie的时候设置了一个setPath.但是在获取cookie的时候,得到path却是null.

贴一些代码

登陆:
HttpServletResponse response = (HttpServletResponse) ActionContext
						.getContext().get(StrutsStatics.HTTP_RESPONSE);
				if (ifSavePwd != null) {
					userId = users.get(0).getUserId();
					cookie = new Cookie(cookieName, Integer.toString(userId));
					cookie.setMaxAge(100000000);
					cookie.setPath("/weare/");
					response.addCookie(cookie);

				}


退出:
for (int i = 0; i < cookies.length; i++) {
				if ((cookieName).equals(cookies[i].getName())) {
					try {
						// userId = Integer.parseInt(cookies[i].getValue());
						cookie = cookies[i];//new Cookie(cookieName, null);
						cookie.setMaxAge(0);
						cookie.setPath("/weare/");
						response.addCookie(cookie);
						// session.remove("userName");
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			}


点击退出后返回的页面中要执行的action:
	HttpServletRequest request = (HttpServletRequest) ActionContext
				.getContext().get(StrutsStatics.HTTP_REQUEST);
		Cookie[] cookies = request.getCookies();
		if (cookies == null) {
			return ERROR;
		}
		session = ActionContext.getContext().getSession();
		for (int i = 0; i < cookies.length; i++) {
			if ((cookieName).equals(cookies[i].getName())) {
				try {
					userId = Integer.parseInt(cookies[i].getValue());
					users = this.userService.listUser(userId, "");
					if (users != null && !users.isEmpty()) {

						User user = users.get(0);
						session.put("userName", user.getUserName());
						session.put("userId", user.getUserId());
						session.put("userState", user.getUserState());
					}
					return SUCCESS;
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}



分享到:
评论
5 楼 haclyone 2008-12-22  
将退出的forward启用重定向即可即时生效
例:<forward name="logout" path="logout.jsp" redirect="true" />
4 楼 lonelydark 2008-11-13  
清除可能需要一些时间.没有立即生效.也就是我点击退出后.跳转的页面会走另外一个action.而这个action会对 cookie做判断.在点击退出到执行跳转页面中action之间. cookie还存在.
3 楼 treack 2008-11-13  
点击退出的时候把COOKIE删掉不行吗?
2 楼 lonelydark 2008-11-13  
或许知道问题的所在了,当我退出时设置cookie失效.并没有立即失效.

也就是第一次点击退出后.我在等了一会儿.在点击首页的时候.就失效了..怎样才能立即生效呢?
1 楼 sdh5724 2008-11-13  
path是给BROWSER用的吧? 我。。。。。不确定, 没有详细研究过。

相关推荐

    关于java应用cookie

    ### 关于Java应用Cookie知识点详解 #### 一、Cookie简介 Cookie是一种常用的技术,用于存储用户的访问信息。在Web开发中,服务器可以将少量的信息发送到客户端浏览器,并存储在客户端,这种信息就是Cookie。当...

    FlashCookie 不被浏览器清除的Cookie

    为了解决这个问题,Flash开发者引入了FlashCookie,它们可以存储比普通Cookie更大容量的数据(高达100KB),并且更难以被用户发现和删除。 FlashCookie的工作原理是,当用户访问使用Flash技术的网站时,该网站可以...

    safari,opera嵌入iframe页面cookie读取问题解决方法

    然而,由于浏览器的安全策略,特别是对于第三方cookie的处理,开发者可能会遇到在特定浏览器如Safari、Opera以及某些使用特定内核的搜狗浏览器中无法读取`iframe`内的cookie的问题。这个问题主要源于浏览器对第三方...

    原生登录cookie保持提供webview使用

    3. **添加cookie到WebView**:将从原生登录获取的cookie添加到`CookieManager`,这样WebView在后续的加载请求中会附带这些cookie。 ```java String cookieValue = "session_id=" + sessionId + "; Path=/; Secure; ...

    cookie设置httpOnly和secure属性实现及问题

    ### Cookie设置httpOnly和secure属性实现及问题 #### 一、引言 在现代Web开发中,保护用户的隐私和数据安全至关重要。其中一种常见的做法就是通过设置Cookie的`httpOnly`和`secure`属性来增强安全性。这两个属性...

    cookie接口 实现本地或客户端的cookie的创建和读取

    以下是关于这个主题的详细解释。 1. **Cookie接口**: Cookie接口在Java的`javax.servlet.http.Cookie`包中定义,它提供了对HTTP Cookie的抽象表示。Cookie接口允许开发人员创建、修改和删除浏览器中的Cookie。它...

    Cookie将用户名和密码加密后存在客户端的Cookie当中

    var UserValue = unescape(allCookies.substring(cookie_User, cookie_UserEnd)); // 提取PwdCookie的值 cookie_Pwd += "PwdCookie".length + 1; var cookie_PwdEnd = allCookies.indexOf(";", cookie_Pwd); ...

    cookie分析工具

    2. **性能监控**:Cookie数据可以帮助识别网站性能问题,例如加载速度慢或用户流失率高的页面。 3. **数据分析**:分析Cookie数据有助于进行用户行为分析,为市场营销策略提供数据支持。 **总结** Cookie分析工具...

    关于document.cookie的使用

    关于`document.cookie`的使用,这是一个在Web开发中极为关键的概念,主要用于客户端存储少量的数据,以便网站能够识别用户,提供个性化服务,或是保存用户的偏好设置等。以下将深入解析`document.cookie`的特性、...

    【JavaScript源代码】chrome监听cookie变化与赋值问题.docx

    在JavaScript编程中,特别是在Web开发领域,Chrome浏览器提供了一种API来管理和监控浏览器中的Cookie。本文将详细讨论如何使用Chrome的`chrome.cookies` API来监听和处理Cookie的变化以及进行赋值操作。 首先,`...

    axios携带cookie配置详解(axios+koa)

    总结而言,文章详尽地探讨了在axios发起请求时携带cookie的问题,涵盖了客户端的配置、服务端的配置以及对CORS预检请求的处理。这些知识点对于开发跨域交互的Web应用尤为重要,需要开发者仔细掌握和实施,以确保在...

    使用Cookie记录用户名和密码

    标题“使用Cookie记录用户名和密码”涉及到的是Web开发中的用户会话管理技术,特别是关于Cookie的应用。Cookie是一种在客户端和服务器之间传递信息的小型文本文件,常用于保持用户登录状态、存储用户偏好设置等。在...

    采集需要登录后的网页(重定向后cookie丢失问题)(

    ### 采集需要登录后的网页(重定向后Cookie丢失问题) 在网络爬虫开发过程中,经常会遇到需要登录后才能访问的目标网站。这些网站为了保护用户隐私和数据安全,通常会在用户通过身份验证后设置Cookie来保持登录状态...

    Javascript中关于Cookie存储Array集合

    在JavaScript中,Cookie是用于在用户浏览器中存储小量数据的一种机制。...需要注意的是,由于Cookie的大小限制和安全性问题,对于大量数据或敏感信息,可能需要考虑其他存储机制,如LocalStorage或SessionStorage。

    jquery.cookie.js 以及用法 cookie读取与存储

    跨域读写Cookie可能涉及安全问题,需谨慎处理。此外,由于HTTP-only标志的存在,JavaScript可能无法访问某些Cookie,这是为了防止XSS攻击。 ### 8. 使用场景 - 用户首选项:存储用户界面设置,如主题选择、语言...

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

    Cookie是Web开发中的一种技术,用于在客户端存储和管理数据,解决了HTTP协议无状态的问题。它们是由服务器端生成,发送到客户端(浏览器),并由浏览器保存。当用户再次访问同一网站时,浏览器会将Cookie回传给...

    cookie产生与认证

    为了解决这个问题,Web开发者引入了Cookie,使得服务器能够识别特定的用户会话。 标题“cookie产生与认证”主要涉及两个关键概念:Cookie的生成和其在用户认证中的作用。生成Cookie通常涉及到以下几个步骤: 1. ...

    jquery-cookie

    因此,在设计系统时,应合理规划Cookie的使用,避免因数量或大小超出限制导致的问题。 ### 7. 应用场景 - **用户设置**:存储用户的界面偏好,如主题颜色、字体大小等。 - **会话管理**:在用户浏览多个页面时保持...

    Cookie简介及JSP处理Cookie的方法

    Cookies,通常被称为“小甜饼”,是一种由Netscape公司开发的技术,用于解决HTTP协议无状态的问题。HTTP协议作为浏览器与Web服务器之间的通信协议,它本质上是无状态的,即每次请求都是独立的,服务器不会记住之前与...

    Net Cookie操作读取数据

    六、Cookie的安全与隐私问题 由于Cookie包含敏感信息,因此需要注意安全性和隐私保护。可以通过设置HttpOnly属性防止JavaScript访问Cookie,以降低XSS攻击风险;设置Secure属性确保Cookie只在HTTPS连接中传输,增加...

Global site tag (gtag.js) - Google Analytics