-
Java 关于Cookie的蛋疼问题0
最近让做一个自动登录的功能,于是google,学习了下他人的代码,感觉不是很难;但还是遇到了一些小挫折,很叫人蛋疼!也没法搞定了,只能发帖呼救了~
我所实现的自动登录功能也就三步:
①在登录方法的判断密码的if分支中,创建cookie如下:
Cookie cookie = new Cookie("usr", username); cookie.setMaxAge(24*60*60*15); response.addCookie(cookie); Cookie cookie = new Cookie("pw", pwEncrypt); cookie.setMaxAge(24*60*60*15); response.addCookie(cookie);
②在访问首页的方法中,搜索cookie如下:
String username = ""; String password = ""; Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie cookie : cookies) { if ("usr".equals(cookie.getName())) { username = cookie.getValue(); } if ("pw".equals(cookie.getName())) { password = cookie.getValue(); } if (!"".equals(username) && !"".equals(password)) { //将用户对象放入session中 } } }
③退出方法中,删除cookie如下:
Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie cookie : cookies) { if ("urs".equals(cookie.getName())) { cookie.setValue(""); cookie.setMaxAge(0); response.addCookie(cookie); } if ("pw".equals(cookie.getName())) { cookie.setValue(""); cookie.setMaxAge(0); response.addCookie(cookie); } } }
其中,①②步都木问题,问题就出在第③步,无论怎样都无法删除cookie(最后也只能在ie的Internet选项中删了)。点击“退出”按钮时,关闭浏览器,再打开,首页依然显示该用户为登录状态,很是纠结!!是代码问题,还是我浏览器设置问题?或者是其他什么原因?
2012年12月10日 11:57
6个答案 按时间排序 按投票排序
-
采纳的答案
引用一、删除已知名称的Cookie(方案:重新建立同名立即删除类型的Cookie)
Cookie newCookie=new Cookie(“username”,null); //假如要删除名称为username的Cookie
newCookie.setMaxAge(0); //立即删除型
newCookie.setPath(“/”); //项目所有目录均有效,这句很关键,否则不敢保证删除
response.addCookie(newCookie); //重新写入,将覆盖之前的
二、删除所有Cookie
Cookie[] cookies=request.getCookies();
for(Cookie cookie: cookies){
cookie.setMaxAge(0);
cookie.setPath(“/”);
response.addCookie(cookie);
}2012年12月10日 13:56
-
第一:注销时要session.invalidate()。
第二:不应该在进入首页时检查,而应该在进入任何页面(登录页除外)都检查。
第三:有可能是IE的缓存问题,你在页面源代码中加入禁用缓存的代码试试。2012年12月10日 16:23
-
引用
点击“退出”按钮时,关闭浏览器,再打开,首页依然显示该用户为登录状
要确认一下客户端是否接收到了删除cookie的命令,用firebug看看点击退出时,浏览器接收到的response中有没有set cookie指令2012年12月10日 13:20
-
for (Cookie cookie : cookies) { if ("urs".equals(cookie.getName())) { //cookie.setValue(""); // 注释掉 cookie.setMaxAge(0); response.addCookie(cookie); } if ("pw".equals(cookie.getName())) { //cookie.setValue(""); // 注释掉 cookie.setMaxAge(0); response.addCookie(cookie); } }
2012年12月10日 12:42
-
删除cookie的程序是没有问题的,估计是你每次登陆的时候并不是检测cookie中是否存在改用户,可能是检测session了,你可以每次退出登陆是将session销毁试试
2012年12月10日 12:26
-
1、你删cookie的方式没问题
2、你是不是应该调用session.invalidate 销毁session,因为
String username = "";
String password = "";
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("usr".equals(cookie.getName())) {
username = cookie.getValue();
}
if ("pw".equals(cookie.getName())) {
password = cookie.getValue();
}
if (!"".equals(username) && !"".equals(password)) {
//将用户对象放入session中
}
}
}
你这段代码是查用户放到session 怀疑你又根据session中的数据判断用户是否登录2012年12月10日 12:06
相关推荐
### 关于Java应用Cookie知识点详解 #### 一、Cookie简介 Cookie是一种常用的技术,用于存储用户的访问信息。在Web开发中,服务器可以将少量的信息发送到客户端浏览器,并存储在客户端,这种信息就是Cookie。当...
Java 模拟Cookie 登陆简单操作示例 在本文中,我们将介绍 Java 模拟 Cookie 登陆的简单操作,结合实例...本示例可以帮助开发者快速了解 Java 模拟 Cookie 登陆的实现原理和实现方法,为实际开发中提供了有价值的参考。
Java 操作 Cookie Java 操作 Cookie 是一种常用的 Web 开发技术,用于在服务器端和客户端之间交换数据。Cookie 是一种小文本文件,存储在客户端浏览器中,用于记录用户的行为和偏好。下面我们将详细介绍 Java 操作 ...
Java中的Cookie操作是Web开发中常见的一种技术,用于在客户端和服务器之间传递状态信息。Cookie是一种小型文本文件,由服务器发送到用户的浏览器,并由浏览器在后续请求中返回给服务器。以下将详细介绍Java如何进行...
### JAVA之cookie与session #### 一、Cookie与Session的概念 **Cookie** 与 **Session** 是两种在 Web 开发中用于跟踪用户会话的重要技术。它们的主要目标是在客户端和服务端之间保持状态。 - **Cookie** 机制...
在Java编程语言中,Cookie是一种小型文本文件,用于在客户端和服务器之间传递信息,特别是保持用户状态和会话。本文将深入讲解Java中Cookie的使用方法,包括创建、设置、读取和删除Cookie,以及其在Web应用程序中的...
标题“Discuz与Java通过Cookie共享登录”涉及的是在Web开发中如何实现不同系统间用户登录状态的共享,特别是Discuz论坛系统与基于Java的应用之间的交互。Discuz是一款流行的开源社区论坛软件,而Java是一种广泛使用...
3. **隐私问题**: 使用Cookie时应考虑用户的隐私,尤其是在处理个人信息时。 4. **生命周期管理**: 适当设置Cookie的生命周期,避免不必要的资源占用。 通过以上介绍,我们可以看到,在Java Web环境中,Cookie的...
java web cookie 详解
Java Cookie 是一种在客户端和服务器之间传递信息的技术,主要用于存储用户状态或偏好设置。在Servlet环境中,Cookie常用于实现会话管理,例如保存登录状态、购物车信息等。本示例将详细介绍如何在Java Servlet中...
总的来说,这个项目涉及了Java网络编程、HTTP请求、登录处理、COOKIE管理、HTML解析以及数据库操作等多个方面,这些都是Java网络爬虫开发中常见的核心技术。通过实践和学习这些知识点,你可以构建出强大的爬虫系统,...
**Java Cookie技术详解** 在Web开发中,Cookie是一种非常重要的技术,它被广泛用于实现用户会话管理、个性化设置、保持登录状态等功能。Cookie的工作原理是服务器在客户端(用户的浏览器)上存储一小段文本信息,当...
在Java Web开发中,Cookie、Session和验证码是三个非常重要的概念,它们对于用户身份验证、...在实际项目中,还需要考虑如何优化会话管理,比如设置合理的Cookie和Session过期时间,以及防止Session劫持等安全问题。
以上就是关于Java中Cookie的读写以及如何利用Cookie实现记住密码和自动登录功能的详细说明。理解并正确应用这些技术对于构建健壮的Web应用程序至关重要。在实际开发中,要兼顾用户体验和安全性,合理利用Cookie功能...
JavaScript(JS)Cookie和Java Cookie是Web开发中用于存储客户端数据的两种常见方式,而正则表达式(Regex)在处理字符串和数据匹配时扮演着重要角色。下面将详细阐述这三个知识点及其应用。 首先,JavaScript ...
在Java Web开发中,Cookie是一种常用的技术,用于在客户端存储和传递少量信息。本文将详细介绍如何使用Java操作Cookie,特别是如何设置、读取和删除Cookie。 首先,我们来看如何**设置Cookie**。在Java中,我们通常...
关于Cookie的乱码问题,这是由于字符编码不一致导致的。为了解决这个问题,我们需要确保服务器和客户端使用相同的字符编码。在创建Cookie时,可以使用UTF-8编码值: ```java String value = URLEncoder.encode(...
JAVA 操作 COOKIE Cookie 是一种小型文本文件, Webseite 服务器通过 HTTP 头将其发送到浏览器端,浏览器将其存储在本地,下次访问同一网址时,浏览器将其发送回服务器端,以便服务器端识别用户身份、追踪用户行为...
本文介绍了Cookie的基本概念、在Java中的操作方法,包括创建、修改、删除Cookie以及如何处理Cookie的有效范围、生命周期和安全隐私问题。通过本文的学习,开发者可以更加安全和高效地在Java Web应用中利用Cookie进行...