这几天在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();
}
}
}
分享到:
相关推荐
### 关于Java应用Cookie知识点详解 #### 一、Cookie简介 Cookie是一种常用的技术,用于存储用户的访问信息。在Web开发中,服务器可以将少量的信息发送到客户端浏览器,并存储在客户端,这种信息就是Cookie。当...
为了解决这个问题,Flash开发者引入了FlashCookie,它们可以存储比普通Cookie更大容量的数据(高达100KB),并且更难以被用户发现和删除。 FlashCookie的工作原理是,当用户访问使用Flash技术的网站时,该网站可以...
然而,由于浏览器的安全策略,特别是对于第三方cookie的处理,开发者可能会遇到在特定浏览器如Safari、Opera以及某些使用特定内核的搜狗浏览器中无法读取`iframe`内的cookie的问题。这个问题主要源于浏览器对第三方...
3. **添加cookie到WebView**:将从原生登录获取的cookie添加到`CookieManager`,这样WebView在后续的加载请求中会附带这些cookie。 ```java String cookieValue = "session_id=" + sessionId + "; Path=/; Secure; ...
### Cookie设置httpOnly和secure属性实现及问题 #### 一、引言 在现代Web开发中,保护用户的隐私和数据安全至关重要。其中一种常见的做法就是通过设置Cookie的`httpOnly`和`secure`属性来增强安全性。这两个属性...
以下是关于这个主题的详细解释。 1. **Cookie接口**: Cookie接口在Java的`javax.servlet.http.Cookie`包中定义,它提供了对HTTP 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); ...
2. **性能监控**:Cookie数据可以帮助识别网站性能问题,例如加载速度慢或用户流失率高的页面。 3. **数据分析**:分析Cookie数据有助于进行用户行为分析,为市场营销策略提供数据支持。 **总结** Cookie分析工具...
关于`document.cookie`的使用,这是一个在Web开发中极为关键的概念,主要用于客户端存储少量的数据,以便网站能够识别用户,提供个性化服务,或是保存用户的偏好设置等。以下将深入解析`document.cookie`的特性、...
在JavaScript编程中,特别是在Web开发领域,Chrome浏览器提供了一种API来管理和监控浏览器中的Cookie。本文将详细讨论如何使用Chrome的`chrome.cookies` API来监听和处理Cookie的变化以及进行赋值操作。 首先,`...
总结而言,文章详尽地探讨了在axios发起请求时携带cookie的问题,涵盖了客户端的配置、服务端的配置以及对CORS预检请求的处理。这些知识点对于开发跨域交互的Web应用尤为重要,需要开发者仔细掌握和实施,以确保在...
标题“使用Cookie记录用户名和密码”涉及到的是Web开发中的用户会话管理技术,特别是关于Cookie的应用。Cookie是一种在客户端和服务器之间传递信息的小型文本文件,常用于保持用户登录状态、存储用户偏好设置等。在...
### 采集需要登录后的网页(重定向后Cookie丢失问题) 在网络爬虫开发过程中,经常会遇到需要登录后才能访问的目标网站。这些网站为了保护用户隐私和数据安全,通常会在用户通过身份验证后设置Cookie来保持登录状态...
在JavaScript中,Cookie是用于在用户浏览器中存储小量数据的一种机制。...需要注意的是,由于Cookie的大小限制和安全性问题,对于大量数据或敏感信息,可能需要考虑其他存储机制,如LocalStorage或SessionStorage。
跨域读写Cookie可能涉及安全问题,需谨慎处理。此外,由于HTTP-only标志的存在,JavaScript可能无法访问某些Cookie,这是为了防止XSS攻击。 ### 8. 使用场景 - 用户首选项:存储用户界面设置,如主题选择、语言...
Cookie是Web开发中的一种技术,用于在客户端存储和管理数据,解决了HTTP协议无状态的问题。它们是由服务器端生成,发送到客户端(浏览器),并由浏览器保存。当用户再次访问同一网站时,浏览器会将Cookie回传给...
为了解决这个问题,Web开发者引入了Cookie,使得服务器能够识别特定的用户会话。 标题“cookie产生与认证”主要涉及两个关键概念:Cookie的生成和其在用户认证中的作用。生成Cookie通常涉及到以下几个步骤: 1. ...
因此,在设计系统时,应合理规划Cookie的使用,避免因数量或大小超出限制导致的问题。 ### 7. 应用场景 - **用户设置**:存储用户的界面偏好,如主题颜色、字体大小等。 - **会话管理**:在用户浏览多个页面时保持...
Cookies,通常被称为“小甜饼”,是一种由Netscape公司开发的技术,用于解决HTTP协议无状态的问题。HTTP协议作为浏览器与Web服务器之间的通信协议,它本质上是无状态的,即每次请求都是独立的,服务器不会记住之前与...
六、Cookie的安全与隐私问题 由于Cookie包含敏感信息,因此需要注意安全性和隐私保护。可以通过设置HttpOnly属性防止JavaScript访问Cookie,以降低XSS攻击风险;设置Secure属性确保Cookie只在HTTPS连接中传输,增加...