`
wusuoya
  • 浏览: 637683 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

实现自动登录Cookie

    博客分类:
  • web
 
阅读更多

有很多Web程序中第一次登录后,在一定时间内(如2个小时)再次访问同一个Web程序时就无需再次登录,而是直接进入程序的主界面(仅限于本机)。实现这个功能关键就是服务端要识别客户的身份。而用Cookie是最简单的身从验证。

如果用户第一次登录,可以将用户名作为Cookie写到本地,代码如下:

Cookie cookie = new Cookie("user", user);

cookie.setMaxAge(365 * 24 * 3600);

cookie.setPath("/");

response.addCookie(cookie);

    当用户再次访问程序时,服务端程序应该检测这个Cookie是否存在,代码如下:

Cookie[] cookies=request.getCookies();

for(Cookie cookie: cookies)

{

    if(cookie.getName().equals(user))

    {

        // 如果user Cookie存在,进行处理

        break;

    }

}

    尽管从客户端可以获得User Cookie,但这上Cookie可能存在很长时间,而且仅凭这个Cookie就自动登录并不安全,因此,可以在服务端使用一个Session来管理用 户。也就是当第一次登录成功后,就创建一个Session,并将用户的某些信息保存在Session顺。代码如下:

HttpSession session =request.getSession();

session.setAttribute(user, user);

session.setMaxInactiveInterval(2 * 3600);  // Session保存两小时

     当再次访问程序时,确定了cookie存在后,就会继续验证User Session的存在,代码如下:

Cookie[] cookies=request.getCookies();

for(Cookie cookie: cookies)

{

    if(cookie.getName().equals(user))

    {

        if(session.getAttribute(user) != null)

        {

            // 直接forward到主界面

           break;

        }

        else

        { 

            // forward到登录界面

         }

     }

}

    虽然上面的代码可以很好地实现自动登录功能,但是当浏览器关闭,再次启动后,由于Servlet用于保存Session ID的JSESSIONID Cookie是临时的(也就是说不是持久Cookie,当浏览器关闭后,这个Cookie就会被删除),因此,需要将JSESSIONID进行持久化。代 码如下:

HttpSession session = request.getSession();

session.setAttribute(user, user);

session.setMaxInactiveInterval(2 * 3600);  // Session保存两小时

Cookie cookie = new Cookie("JSESSIONID", session.getId());

cookie.setMaxAge(2 * 3600);  // 客户端的JSESSIONID也保存两小时

session.setMaxInactiveInterval(interval)

cookie.setPath("/");        

response.addCookie(cookie);

 

如果使用上面的代码,即使浏览器关闭,在两小时之内,Web程序仍然可以自动登录。

如果我们自已加一个JSESSIONID Cookie,在第一次访问Web程序时,HTTP响应头有两个JSESSIONID,但由于这两个JSESSIONID的值完全一样,因此,并没有任何 影响。如果在响应头的Set-Cookie字段中有多个相同的Cookie,则按着path和name进行比较,如果这两个值相同,则认为是同一个 Cookie,最后一个出现的Cookie将覆盖前面相同的Cookie,如下面的两个Cookie,最后一个将覆盖前一个:

Set-Cookie: JSESSIONID=DDB2274CAC6739E1D6747B0043D5D90E; Path=/web

Set-Cookie: JSESSIONID=mysession; Expires=Thu, 05-Jun-2008 05:02:50 GMT; Path=/web

    由于下面两个Cookie的path不同,因此,它们是完全不同的两个Cookie:

Set-Cookie: JSESSIONID=DDB2274CAC6739E1D6747B0043D5D90E; Path=/web1

Set-Cookie: JSESSIONID=mysession; Expires=Thu, 05-Jun-2008 05:02:50 GMT; Path=/web2

分享到:
评论

相关推荐

    实现cookie记住自动登录

    1.代码是完整的导入到 myEclipse 中就可以使用 2.实现struts cookie 记住两周 自动登录功能 3.访问地址:http://127.0.0.1:8080/cookie/index.jsp 4.系统默认有两个账户 在 UserDao 中可以查到

    Cookie实现自动登录

    本文将深入探讨Cookie如何实现自动登录,以及与之相关的源码和工具。 Cookie是Web服务器发送到用户浏览器并存储在本地的一小段数据,用于在后续请求中识别用户。它们是HTTP协议无状态特性的补充,因为HTTP本身不...

    JAVA通过Session和Cookie实现网站自动登录的技术

    在网站开发中,实现自动登录功能是非常重要的,JAVA 通过 Session 和 Cookie 实现网站自动登录的技术是其中的一种方法。本文将详细介绍如何使用 Session 和 Cookie 实现网站自动登录的技术。 一、什么是 Session 和...

    Cookie 实现WebView自动登录

    本文将详细探讨Cookie与WebView的结合使用,以及如何在iOS中实现自动登录。 一、Cookie基础 Cookie是由服务器端发送到客户端(浏览器)的一小段文本信息,用于存储用户的状态信息,如登录状态、个性化设置等。当...

    jsp cookie+session实现简易自动登录

    本文实例为大家分享了jsp cookie+session实现简易自动登录的具体代码,供大家参考,具体内容如下 关闭浏览器只会使存储在客户端浏览器内存中的session cookie失效,不会使服务器端的session对象失效。 如果设置了...

    cookie实现自动登入

    下面将详细阐述Cookie实现自动登录的原理、步骤以及相关的安全考虑。 **Cookie的基本概念与工作原理** Cookie由HTTP协议定义,主要用于管理客户端的状态。服务器在响应头中设置Set-Cookie字段,将Cookie信息传递给...

    使用Java servlet实现自动登录退出功能

    使用Cookie实现自动登录是指系统在用户登录成功后,系统将用户的登录信息存储在Cookie中,以便下次用户访问时可以自动登录。Cookie是Web服务器用来存储用户信息的小文本文件。 知识点5:使用Filter实现自动登录 ...

    JAVA通过Session和Cookie实现网站自动登录

    虽然使用`Session`和`Cookie`实现自动登录可以极大地提高用户体验,但同时也需要特别注意安全性问题。例如,Cookie可能会被截获或篡改,因此建议对敏感信息(如密码)进行加密处理,并且限制Cookie的使用场景,避免...

    struts2与cookie实现自动登录

    通过以上步骤,我们可以利用Struts2和Cookie实现自动登录功能。这个过程涉及到Web应用的安全性、用户认证以及用户体验等多个方面,因此在实际开发中需要充分考虑各种安全风险并采取相应的防护措施。

    jsp之Cookie自动登录

    综上所述,JSP中的Cookie自动登录是通过结合Cookie和服务器端的Session管理实现的,为用户提供便捷的登录体验,但同时也需要考虑安全性问题。在实际开发中,应结合具体业务场景选择合适的身份验证机制。

    微信小程序cookie维护插件 实现自动设置获取cookie功能

    本文将详细讲解如何使用微信小程序中的cookie维护插件,实现自动设置和获取Cookie的功能,并特别关注增加的Cookie超时处理机制。 首先,理解Cookie的基本概念。Cookie是由服务器端生成,发送到客户端(浏览器)的一...

    strut2使用cookie实现自动登录

    本篇文章将深入探讨如何在Struts2框架下利用Cookie技术实现自动登录功能。 自动登录的基本思路是:当用户首次登录成功后,服务器会创建一个包含用户信息的Cookie,并将其发送到客户端浏览器。然后,当用户再次访问...

    cookie实现自动登录

    当用户第一次登录某个网站时,用户可以选择用户名及密码保存的有效期时间(一天,一周,一年等等),用户在有效期内再次访问该网站时,不用再次输入用户名及密码,即可自动登录访问网站

    Jsp+Servlet+Cookie实现记住密码,自动登录,防止表单提交,记录登录次数

    在用户下次访问网站时,浏览器会自动发送这些Cookie信息回服务器,从而实现自动填充用户名或密码,简化登录过程。这个例子中,可能使用了`HttpServletResponse.addCookie()`方法来创建和设置Cookie,并通过`...

    cookie自动登录认证

    #### 三、实现自动登录的关键步骤 1. **设置Cookie:** 当用户登录时,服务器会在响应头中添加一个或多个Cookie。例如,在代码片段中可以看到: ```java Cookie cookie = new Cookie("SESSION_LOGIN_USERNAME", ...

    基于GO语言与chromedp库实现网站自动登录,以长期定时任务,实现三维家网站自动登录获取cookie,

    基于GO语言与chromedp库实现网站自动登录,以长期定时任务,实现三维家网站自动登录获取cookie,并更新到mysql数据库为例。Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门...

    纯JSP演示Cookie自动登录(完整工程)

    主要实现勾选自动登录后, 哪怕服务器重启后session丢失,靠客户端COOKIE仍然正常登录并刷新COOKIE。点退出登录后COOKIE失效。 现为WEB,可改造为提供android 和ios下的httpclient保持长久登录状态的方式。

    用jsp实现cookie登录验证

    在本文中,我们将深入探讨如何使用Java Server Pages (JSP) 实现基于Cookie的自动登录功能。这个过程涉及用户身份的持久化存储,以便在用户下次访问网站时...以上就是用jsp实现cookie登录验证的基本知识和实现流程。

    java操作cookie-实现两周内自动登录.doc

    当用户在之后的某个时候再次访问,浏览器就会向网站服务器回送这个 Cookie,于是,我们可以从这个 Cookie 中读取到用户名,然后调用登录的方法,从而实现自动为用户登录。 三、防止欺骗 Cookie 只是一个普通的文本...

    Cookie自动登录用户名密码

    在互联网世界中,登录是用户访问网站或...开发者需要在实现自动登录功能时,兼顾用户体验和数据安全,确保专业的判断和处理。在压缩包文件"login"中,可能包含了实现这一功能的相关代码或文档,供开发者参考和学习。

Global site tag (gtag.js) - Google Analytics