cookie实现网站自动登录

在网上看到一篇博客,所以将里面的内容用自己的方式写下来

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

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

2、将用户名以cookie的方式发送到客户端,并且将用户名以session属性的方式保存到服务器端以保证安全性,最后处理JSESESSIONID使其持久化(以cookie的形式保存到客户端)当第二次登录时HTTP响应头便会出现两个ID但没有影响,具体代码如下:

 1 /*
 2          * 如果是第一次登录,将用户名和密码作为cookie写到本地
 3          */
 4         String name = request.getParameter("name");
 5         String pwd = request.getParameter("password");
 6         User user = new User();
 7         String userInfo = user.toString();
 8         if(null!=name && !"".equals(name)){
 9             user.setName(name);
10         }
11         if(null!=pwd && !"".equals(pwd)){
12             user.setPassword(pwd);
13         }
14         Cookie cookie = new Cookie("user",userInfo);
15         cookie.setMaxAge(360*24*60);//设置一年有效期
16         cookie.setPath("/");//可在同一应用服务器内共享方法
17         response.addCookie(cookie);//放松到客户段
18         //凭这个Cookie就自动登录并不安全可以在服务端使用一个Session来管理用户。
19         //当第一次登录成功后,就创建一个Session,并将用户的某些信息保存在Session
20         HttpSession session = request.getSession();
21         session.setAttribute("user", userInfo);
22         session.setMaxInactiveInterval(3600*2);//2小时
23         //但是当cookie关闭后,用于保存SessionID的JSESSIONID会消失(此时cookie并没有过期) ,所以得将JSESESSION持久化
24         Cookie sessionId = new Cookie("JSESESSIONID",session.getId());
25         sessionId.setMaxAge(2*60);//设置两小时
26         sessionId.setPath("/");
27         response.addCookie(sessionId);
28
29
30
31         //当用户第二次登陆时,检测这个cookie是否存在
32         Cookie[] cookies = request.getCookies();
33         for (Cookie cookie2 : cookies) {
34             //如果存在这个cookie进行页面跳转
35             if(cookie2.equals("user")){
36                 if(session.getAttribute("user")!=null){
37                     request.getRequestDispatcher("直接进入主页面的url").forward(request, response);
38                     break;
39                 }else{
40                     //跳转到登录页面
41                 }
42
43             }
44         }
45          //如果使用上面的代码,即使浏览器关闭,在两小时之内,Web程序仍然可以自动登录。
46         //如果我们自已加一个JSESSIONID Cookie,在第一次访问Web程序时,
47         //HTTP响应头有两个JSESSIONID,但由于这两个JSESSIONID的值完全一样,没有任何影响
48         //如果在响应头的Set-Cookie字段中有多个相同的Cookie,则按着path和name进行比较,如果这两个值相同,
49         //则认为是同一个Cookie,最后一个出现的Cookie将覆盖前面相同的Cookie
时间: 2024-10-10 12:53:38

cookie实现网站自动登录的相关文章

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

 第一步,登陆的时候一旦选择了[自动登录]的选项,则需要在登陆成功后,附加下面的代码. 因为一般网站都提供保存用户名的功能,所以我把这个写到了外面.只有密码是单独处理的. 其中的host就是你的域名 login.jsp    代码如下 复制代码         String host = request.getServerName();         Cookie cookie = new Cookie("SESSION_LOGIN_USERNAME", username); //

JavaWeb使用Cookie模拟实现自动登录功能(不需用户名和密码)_java

其中包含两个jsp文件,分别为login.jsp和index.jsp 代码如下: login.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "

VB实现网站自动登录,报错,求大神指正

问题描述 VB实现网站自动登录,报错,求大神指正 公司有个平台,每次登录输入密码好麻烦,就找了个这么个自动登录的,起先是这样的: Dim username,password,IE '定义变量 username = "admin" '用户名 password = "123" '密码 Set IE =CreateObject("InternetExplorer.Application") '调用IE程序 IE.FullScreen=0 '全屏化IE对

微信扫码网站自动登录的实现方法

magento 微信扫码网站自动登录 案例仿照了微信联合登陆的做法,微信联合登陆介绍: https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&lang=zh_CN 查看授权后接口调用(UnionID),不难发现填写回调地址,用户确认登陆pc端即可跳转 获取UnionID方法 public function wcallbackAction(){   $c

网站 自动登录-怎么样写个程序,自动登录一个网站,然后填报表,然后发送

问题描述 怎么样写个程序,自动登录一个网站,然后填报表,然后发送 是这样的,平时工作里,我要登录一个网站做上班登记,要填一张表,最后发送,一天要登记四五回.用什么语言,什么方式,学什么知识,可以写一个程序,自动登录这个网站(我提供账号密码),然后完成填表,发送呢? 顺便我会c,c++,c#会一点,ruby懂,没用过rails,web开发没试过,谢谢. 一点头绪都没有,请致电,谢谢

利用cookie实现用户自动登录的代码

cookie 是由服务器发送到浏览器的变量.cookie 通常是服务器嵌入到用户计算机中的小文本文件.每当计算机通过浏览器请求一个页面,就会发送这个 cookie. 实例 <?php教程   echo( "Cookie created? : " . setcookie("cookie_name", "cookie_data" ) ); ?> <html>  <head>   <title>Cooki

php代码如何实现网站自动登录

问题描述 举个例子如何用PHP代码实现打开iteye的登录界面,自动填写用户名,密码并且自动登陆?不考虑验证码.PHP语言能不能实现这样的功能,如果不能,什么代码可以实现? 解决方案 用httpClient代码如下public static void main(String[] args) throws HttpException, IOException {HttpClient httpClient = new HttpClient();httpClient.getHostConfigurat

spring mvc-springmvc怎么实现自动登录啊使用cookie还是本身有别的方法

问题描述 springmvc怎么实现自动登录啊使用cookie还是本身有别的方法 求大神给些代码! 我是个刚培训出来的.现在我只能简单的做个晓得登录. 解决方案 SpringMVC记住密码功能http://blog.csdn.net/liupeng_family/article/details/38420963?utm_source=tuicool&utm_medium=referral 解决方案二: 前端h5就可以完成了,用本地存储记住帐号密码,然后在页面加载忘后执行js登录函数即可. 解决方

如何看到网站网页自动登录的密码

  适用范围 谷歌浏览器 火狐浏览器 各种网页已保存密码的显示方法(只适用以上两种浏览器) 注:其他浏览器目前来说,还没有此类的功能,也许是作者很少用其他浏览器的原因吧,如果有的话,欢迎大家补充. 谷歌浏览器查看自动登录路由器密码方法 第1步:正常打开谷歌浏览器,并单击谷歌浏览器右侧的菜单按扭下的设置. 第2步:在打开的谷歌浏览器的设置窗口中向下拉到底部,找到"显示高级设置..."并单击. 第3步:找到"密码和表单"此项,下面的"管理已保存的密码"