最近对华丹快速开发平台进行升级,需要对实现记住密码以及自动登录功能,下面主要说一下如何用cookie实现此功能。
一、什么是cookie?
Cookie,有时也用其复数形式Cookies。是保存在客户端的文本文件,这个文件与特定的Web网站关联在一起,保存了该客户端访问这个Web网站时的信息。由于“Cookie”可以保存在客户端的信息, 因此它可以帮助我们实现记录用户个人信息的功能。
二、cookie的参数
(1)Name/Value:设置Cookie的名称及相对应的值。
(2)expire:设置Cookie的生存期,可以让cookie保存到本地,进行持久保存,不随浏览器的关闭而删除。
(3)Path:定义了Web站点上可以访问该Cookie的目录 。
(4)Domain:指定了可以访问该 Cookie 的 Web 站点或域。
(5)Secure:指定是否使用HTTPS安全协议发送Cookie。
(6)HTTPOnly:用于防止客户端脚本通过document.cookie属性访问Cookie。
三、cookie的设置及获取
1、使用JS设置及获取
(1)设置:主要代码如下

 var userid="aa";var username="bb";//获取当前时间var date=new Date();var expireDays=10;//将date设置为10天以后的时间date.setTime(date.getTime()+expireDays*24*3600*1000);//将userId和userName两个cookie设置为10天后过期document.cookie="userid="+escape(userId)+";expire="+date.toGMTString()+";path=https://www.huadaninfo.com/";document.cookie="userName="+escape(userName)+";expire="+date.toGMTString()+";path=https://www.huadaninfo.com/";

(2)获取:代码如下

function getCookie(key){var cookieStr = document.cookie;var cookieArr = cookieStr.split("; ");for ( var i = 0; i < cookieArr.length; i++) {var cookieObj = cookieArr[i].split("=");if (cookieObj[0] == key){return unescape(cookieObj[1]);}}return "";}

(3)说明:
1)使用js设置和获取非常方便,不需要使用其他语言,适合于不太重要的信息存储。
2)有些朋友可能发现我这里没有用httponly属性,不设置httponly可能会发生xss攻击,而设置了该属性,js将不能获取cookie。
2、使用JAVA设置及获取,这里我选择使用ajax和jsp结合使用,通过js使用ajax将内容传递给jsp页面,jsp页面通过java程序存储及返回。(此处ajax使用开发平台内置的,可自行改成JS的)
(1)设置
1)js部分

//存储cookie
function saveCookie(key,val,expire,path){var url =charisma.contextPath+"/saveCookie.jsp";var reqData ="keyStr="+escape(key)+"&valStr="+escape(val)+"&expireStr="+expire+"&pathStr="+path;var xHttp = new XHttp(url);xHttp.method = "POST";xHttp.reqData = reqData;xHttp.async=false;xHttp.callback=function(xmlHttp){var responseText = xmlHttp.responseText;}xHttp.send();xHttp=null;}
2)jsp部分
 <%String keyStr = request.getParameter("keyStr")String valStr = request.getParameter("valStr")String expireStr =request.getParameter("expireStr")String pathStr =request.getParameter("pathStr")String FTS = "HuAdANINfo_FilTerSTRing";//自定义加密程序。DesUtil desUtil = new DesUtil();valStr = desUtil.encrypt(valStr,FTS);Cookie cookie = new Cookie(keyStr,valStr);cookie.setMaxAge(60*60*24*10);cookie.setPath(pathStr);cookie.setHttpOnly(true);response.addCookie(cookie);%>

(2)获取
1)js部分

//返回cookie值function getCookieValForName(cookieName){var cookieVal = "not Have This Cookie";var url =charisma.contextPath+"/getCookieVal.jsp";var reqData ="cKey="+cookieName;var xHttp = new XHttp(url);xHttp.method = "POST";xHttp.reqData = reqData;xHttp.async=false;xHttp.callback=function(xmlHttp){var responseText = xmlHttp.responseText;cookieVal = unescape(responseText);}xHttp.send();xHttp=null;return cookieVal;}
2)jsp部分
 <%String key=request.getParameter("cKey")Cookie[] cookies  =  request.getCookies(); String val = "not Data";      if (cookies != null )    {    for (int i = 0; i < cookies.length; i++)     {    Cookie c = cookies[i];    if(c.getName().equalsIgnoreCase(key))    {    val = c.getValue();    }         }     }   if(!"not Data".equals(val)){String FTS = "HuAdANINfo_FilTerSTRing";DesUtil desUtil = new DesUtil();val = desUtil.decrypt(val,FTS);}else{val="";}out.println(val);%>

(3)说明:使用这种方式可以尽可能避开xss攻击。

Cookie实现记住密码及自动登录相关推荐

  1. Cookie实现记住密码、自动登录

    前端代码 <form id="form" action="xxx" method="post"><div><i ...

  2. 基于localStorge开发登录模块的记住密码与自动登录

    前沿||我是乐于分享,善于交流的鸟窝 先做写一篇关于登录模块中记住密码与自动登录的模块.鸟窝微信:jkxx123321 关于这个模块功能模块的由来,这是鸟大大的处女秀,为什么这么说呢?一天在群里,一个 ...

  3. android 自动登录机制,Android登录记住密码以及自动登录的实现

    记住密码以及自动登录的实现主要依赖于SharedPreferences类的使用,SharedPreferences是一个轻量级的存储类,用于存储一些小数据,比如登录账号密码以及状态信息等. 本文章只针 ...

  4. 业务系统实现记住密码和自动登录功能

    业务系统实现记住密码和自动登录功能 公司的业务系统本来是受域控的,用户不需要登录可以直接访问系统.当然,虽然不用人工登录,系统本身会读取电脑的用户名为登录标识,对系统操作权限和记录也是以电脑名.近段时 ...

  5. EChat(简易聊天项目)六、实现记住密码和自动登录

    利用SharedPreferences登录界面记住密码和自动登录 ①修改login_layout.xml文件,增加如下代码,即添加2个勾选框 <LinearLayoutandroid:orien ...

  6. Android登录记住密码以及自动登录的实现

    记住密码以及自动登录的实现主要依赖于SharedPreferences类的使用,SharedPreferences是一个轻量级的存储类,用于存储一些小数据,比如登录账号密码以及状态信息等. 本文章只针 ...

  7. Winform 实现记住密码和自动登录

    一般的软件都有记住密码和自动登录功能,所以今天说一种winform的记住方式. 效果: 关闭软件,再次打开时,密码已经填写好了,不需要输入. 点击登录也能校验成功,完美实现登录记住账号密码. 自动登录 ...

  8. Cookie实现用户登录记住密码,实现自动登录

    什么是Cookie 在java是一个类,一对键和值组成,键值都是字符串类型,每个cookie只能保存一对键和值.每个cookie只能保存最大4K的数据 案列应用 保存用户名和密码在浏览器端,Cooki ...

  9. php中实现记住密码下次自动登录的例子

    做网站的时候经常会碰到要实现记住密码,下次自动登录,一周内免登陆,一个月内免登陆这种需求.这种功能一般都是通过cookie来实现的.本篇文章将简单说一下如何使用php实现该需求的.当然实现该需求的方法 ...

最新文章

  1. 【MongoDB异常】Exception authenticating MongoCredential解决方法
  2. 学术青年如何克服拖延症——5条技巧助你前进
  3. asp.net七层架构是指什么
  4. Docker创建虚机和swarm
  5. 部署在SAP ABAP服务器上的SAP UI5应用,从bsp redirect(重定向)到ui5_ui5的原因分析
  6. Mr.J--密码强度检测
  7. Mybatis常见面试题总结和基本概念
  8. Apache Flink 零基础入门(八): SQL 编程实践
  9. uctools.php,Discuz曝出安全隐患 XSS脚本漏洞和uctools.php
  10. Scintilla开源库使用指南(一)
  11. Nagios③:文件初探
  12. MySQL高手篇:精妙SQL语句介绍
  13. 水仙花数素数质因数分解的C语言实现
  14. iOS最强下片神器,免费不限速,秒杀其他下载神器!
  15. 使用jquery.form.js上传图片或文件
  16. 【微信小程序】关于客服会话的客服人员使用规则
  17. Cena win8/win10配置
  18. 阿里开放平台使用文档
  19. 苹果各种LTE有锁机改4G最新IPCC下载
  20. 自己写一个代理绕过公司网络限制,听歌、看电影,实际上就是所有代理的原理,不仅仅是这些功能

热门文章

  1. vue搜索关键字变色
  2. 搭建网站模拟webshell写入
  3. 在《我的世界》里挖钻石把AI难哭了,DeepMind最新算法终于扳回颜面
  4. 动态规划01背包问题之跳跃点解法
  5. php switch
  6. SSL证书RSA和ECC算法区别
  7. 6603游戏列表添加自定义页面
  8. 《计算机导论》专业课程的知识总结,计算机导论知识点
  9. win10家庭版安装sqlserver2000
  10. Spring的脚手架工程搭建