0 0

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个答案 按时间排序 按投票排序

0 0

采纳的答案

引用
一、删除已知名称的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
0 0

第一:注销时要session.invalidate()。
第二:不应该在进入首页时检查,而应该在进入任何页面(登录页除外)都检查。
第三:有可能是IE的缓存问题,你在页面源代码中加入禁用缓存的代码试试。

2012年12月10日 16:23
0 0

引用

点击“退出”按钮时,关闭浏览器,再打开,首页依然显示该用户为登录状

要确认一下客户端是否接收到了删除cookie的命令,用firebug看看点击退出时,浏览器接收到的response中有没有set cookie指令

2012年12月10日 13:20
0 0

    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
0 0

删除cookie的程序是没有问题的,估计是你每次登陆的时候并不是检测cookie中是否存在改用户,可能是检测session了,你可以每次退出登陆是将session销毁试试

2012年12月10日 12:26
0 0

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

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

    Java 模拟cookie登陆简单操作示例

    Java 模拟Cookie 登陆简单操作示例 在本文中,我们将介绍 Java 模拟 Cookie 登陆的简单操作,结合实例...本示例可以帮助开发者快速了解 Java 模拟 Cookie 登陆的实现原理和实现方法,为实际开发中提供了有价值的参考。

    java 操作cookie

    Java 操作 Cookie Java 操作 Cookie 是一种常用的 Web 开发技术,用于在服务器端和客户端之间交换数据。Cookie 是一种小文本文件,存储在客户端浏览器中,用于记录用户的行为和偏好。下面我们将详细介绍 Java 操作 ...

    java对cookie的操作java对cookie的操作

    Java中的Cookie操作是Web开发中常见的一种技术,用于在客户端和服务器之间传递状态信息。Cookie是一种小型文本文件,由服务器发送到用户的浏览器,并由浏览器在后续请求中返回给服务器。以下将详细介绍Java如何进行...

    JAVA之cookie与session

    ### JAVA之cookie与session #### 一、Cookie与Session的概念 **Cookie** 与 **Session** 是两种在 Web 开发中用于跟踪用户会话的重要技术。它们的主要目标是在客户端和服务端之间保持状态。 - **Cookie** 机制...

    java中cookie的使用教程

    在Java编程语言中,Cookie是一种小型文本文件,用于在客户端和服务器之间传递信息,特别是保持用户状态和会话。本文将深入讲解Java中Cookie的使用方法,包括创建、设置、读取和删除Cookie,以及其在Web应用程序中的...

    discuz与java通过cookie共享登陆

    标题“Discuz与Java通过Cookie共享登录”涉及的是在Web开发中如何实现不同系统间用户登录状态的共享,特别是Discuz论坛系统与基于Java的应用之间的交互。Discuz是一款流行的开源社区论坛软件,而Java是一种广泛使用...

    javacookie的使用

    3. **隐私问题**: 使用Cookie时应考虑用户的隐私,尤其是在处理个人信息时。 4. **生命周期管理**: 适当设置Cookie的生命周期,避免不必要的资源占用。 通过以上介绍,我们可以看到,在Java Web环境中,Cookie的...

    java web cookie 详解 java web cookie 详解

    java web cookie 详解

    java cookie 例子

    Java Cookie 是一种在客户端和服务器之间传递信息的技术,主要用于存储用户状态或偏好设置。在Servlet环境中,Cookie常用于实现会话管理,例如保存登录状态、购物车信息等。本示例将详细介绍如何在Java Servlet中...

    java网络爬虫-通过登陆网站携带COOKIE信息爬取网站数据

    总的来说,这个项目涉及了Java网络编程、HTTP请求、登录处理、COOKIE管理、HTML解析以及数据库操作等多个方面,这些都是Java网络爬虫开发中常见的核心技术。通过实践和学习这些知识点,你可以构建出强大的爬虫系统,...

    aaaaaa.zip_cookie_cookie java_java cookie

    **Java Cookie技术详解** 在Web开发中,Cookie是一种非常重要的技术,它被广泛用于实现用户会话管理、个性化设置、保持登录状态等功能。Cookie的工作原理是服务器在客户端(用户的浏览器)上存储一小段文本信息,当...

    java中cookie,session,验证码的应用实例!

    在Java Web开发中,Cookie、Session和验证码是三个非常重要的概念,它们对于用户身份验证、...在实际项目中,还需要考虑如何优化会话管理,比如设置合理的Cookie和Session过期时间,以及防止Session劫持等安全问题。

    java cookie 读写,记住密码 自动登录

    以上就是关于Java中Cookie的读写以及如何利用Cookie实现记住密码和自动登录功能的详细说明。理解并正确应用这些技术对于构建健壮的Web应用程序至关重要。在实际开发中,要兼顾用户体验和安全性,合理利用Cookie功能...

    JS cookie Java cookie regex 整理结果

    JavaScript(JS)Cookie和Java Cookie是Web开发中用于存储客户端数据的两种常见方式,而正则表达式(Regex)在处理字符串和数据匹配时扮演着重要角色。下面将详细阐述这三个知识点及其应用。 首先,JavaScript ...

    java操作cookie示例(删除cookie)

    在Java Web开发中,Cookie是一种常用的技术,用于在客户端存储和传递少量信息。本文将详细介绍如何使用Java操作Cookie,特别是如何设置、读取和删除Cookie。 首先,我们来看如何**设置Cookie**。在Java中,我们通常...

    java操作cookie

    关于Cookie的乱码问题,这是由于字符编码不一致导致的。为了解决这个问题,我们需要确保服务器和客户端使用相同的字符编码。在创建Cookie时,可以使用UTF-8编码值: ```java String value = URLEncoder.encode(...

    JAVA操作COOKIE.docx

    JAVA 操作 COOKIE Cookie 是一种小型文本文件, Webseite 服务器通过 HTTP 头将其发送到浏览器端,浏览器将其存储在本地,下次访问同一网址时,浏览器将其发送回服务器端,以便服务器端识别用户身份、追踪用户行为...

    JAVA操作COOKIE.pdf

    本文介绍了Cookie的基本概念、在Java中的操作方法,包括创建、修改、删除Cookie以及如何处理Cookie的有效范围、生命周期和安全隐私问题。通过本文的学习,开发者可以更加安全和高效地在Java Web应用中利用Cookie进行...

Global site tag (gtag.js) - Google Analytics