最近对华丹快速开发平台进行升级,需要对实现记住密码以及自动登录功能,下面主要说一下如何用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. MSSql2005: Cube 和 RollUp 的区别
  2. python之简单的get和post请求
  3. 前端学习(3252):vs code中插件的使用
  4. 一路风景之川藏线徒步笔记
  5. 黎活明给程序员的忠告 (必藏经典)
  6. 写文献综述的28个要点
  7. 电线电缆材料stru结构检测知识大全
  8. 底层小程序员 练手做一个网站不小心赚了几十亿
  9. AWS之Glue使用方法
  10. python中ox_Python中os包的用法
  11. 手工搭建多层(多隐藏层)BP神经网络
  12. 企业实施单元测试现状调查(浙江大学管理学院 李云)
  13. 16.控制转移指令(条件跳转指令、比较条件跳转指令、多条件分支跳转指令、无条件跳转指令)
  14. AUC、ROC、ACC区别
  15. 服务器上传图片显示图片404,关于使用spring文件上传遇到的服务器中的图片访问不到报404的问题...
  16. RT-thread基础移植//依据rtt实战学习记录
  17. python起笔落笔_起笔、行笔、落笔,讲话稿还能这样写
  18. TI DaVinci(达芬奇)入门
  19. 嵌入式驱动编写-LCD驱动程序
  20. Nginx学习(二)

热门文章

  1. 程序分析-klee工具分析
  2. 分享几点我的读书心得
  3. GBASE风采|南大通用与天津农商行羽毛球联谊赛圆满举行
  4. SQL 清空表数据的方法
  5. 郭健:Linux内存管理系统参数配置之overcommit
  6. 太有才了!一组街头涂鸦手绘作品欣赏【下篇】
  7. redis 数据删除策略
  8. c语言比特和字节,详解 比特(位,bit),字节(Byte),字符的区别 *(转)
  9. 不看后悔| 5G与智能物流等各种技术的结合,靠谱吗?这次绝对让你明白!
  10. AOE 工程实践-银行卡 OCR 里的图像处理