js实现cookie记住密码
近来做记住密码时,用js的实现方式做了一下。
login.jsp页面代码
- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";
- %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
- <head>
- <base href="<%=basePath%>" />
- <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
- <link rel="stylesheet" href="./css/login.css" />
- <title>登录</title>
- <!-- 引入js-->
- <script src="./js/lib/jquery-1.8.0.min.js" type="text/javascript" ></script>
- <script src="./js/backjs/login.js" type="text/javascript" ></script>
- </head>
- <body>
- <div class="warp">
- <img src="./images/bf.png" alt="" />
- <div class="window">
- <div class="loginWindow"></div>
- <div class="loginWindowContent">
- <form action="#" id="loginForm">
- <label for="" class="weicome">欢迎登录xxx系统</label>
- <label for="" class="slogan">智能随行 随到随停</label>
- <label for="" class="input"> <i> <span></span></i>
- <input type="text" placeholder="请输入用户名/手机号码" name="name" id="name" />
- </label>
- <label for="" class="input" style="margin-top:30px;"> <i><span style="background: url(./images/lock.png) no-repeat;"></span></i>
- <input type="password" placeholder="请输入密码" name="password" id="password"/>
- </label>
- <label for="" class="savePass">
- <input type="checkbox" value="savePW" name="savePW" id="savePW"/>记住密码 <a href="home/resetPwdUI">忘记登录密码?</a>
- </label>
- <label for="" class="sub">
- <p style="color: red" id="loginMes"></p>
- <input type="button" value="登录" id="login_BTN"/>
- </label>
- <label for="" class="reg">还不是智停车会员,<a href="home/registerUI"><b>点击免费注册</b>>></a></label>
- </form>
- </div>
- </div>
- <div class="footer">
- <div class="about">
- <b><a href="">关于xxx</b>
- </div>
- </div>
- </div>
- </body>
- </html>
login.js文件
- /**
- * 登录js
- */
- $().ready(function(){
- var loginSum = 0;
- //点击登录按钮事件
- $("#login_BTN").unbind("click");
- $("#login_BTN").bind("click",function(){
- //修改页面消息显示
- $("#loginMes").text("正在登陆。。。");
- //获取表单数据
- var data = $("#loginForm");
- var jsonData = data.serialize();
- var name = data.find("input[name='name']").val();
- var password = data.find("input[name='password']").val();
- var savePW = data.find("input[name='savePW']").val();
- if(name == '' || name == null){
- $("#loginMes").text("用户名不能为空");
- return;
- };
- if(password == '' || password == null){
- $("#loginMes").text("密码不能为空");
- return;
- };
- //判断重复提交
- if(loginSum == 1){
- //重复提交
- $("#loginMes").text("正在登陆,请稍候");
- return;
- };
- if(loginSum == 0){
- loginSum = 1;
- };
- //提交
- $.ajax({
- url:"home/login",
- type:'POST',
- data:jsonData,
- dataType:'json',
- error:function(){
- alert("出错了!!");
- loginSum = 0;
- },
- success:function (data){
- if(data.code == 0){
- //保存密码
- SetPwdAndChk();
- $("#loginMes").text("登录成功,正在跳转。。。");
- window.location.href="main/home";
- }else{
- $("#loginMes").text("登录失败,用户名或密码错误!");
- loginSum = 0;
- };
- }
- });
- });
- //用户名失去焦点时调用该方法
- $("#name").unbind("blur");
- $("#name").bind("blur",function(){
- GetPwdAndChk();
- });
- //=============js cookie===============
- GetLastUser();
- function GetLastUser() {
- var id = "49BAC005-7D5B-4231-8CEA-16939BEACD67";
- var usr = GetCookie(id);
- if (usr != null) {
- document.getElementById('name').value = usr;
- } else {
- //document.getElementById('name').value = "001";
- }
- GetPwdAndChk();
- };
- //点击登录时触发客户端事件
- function SetPwdAndChk() {
- //取用户名
- var usr = document.getElementById('name').value;
- //alert(usr);
- //将最后一个用户信息写入到Cookie
- SetLastUser(usr);
- //如果记住密码选项被选中
- var checked = document.getElementById('savePW').checked;
- if (checked == true) {
- //取密码值
- var pwd = document.getElementById('password').value;
- //alert(pwd);
- var expdate = new Date();
- expdate.setTime(expdate.getTime() + 14 * (24 * 60 * 60 * 1000));
- //将用户名和密码写入到Cookie
- SetCookie(usr, pwd, expdate);
- } else {
- //如果没有选中记住密码,则立即过期
- ResetCookie();
- }
- };
- function SetLastUser(usr) {
- var id = "49BAC005-7D5B-4231-8CEA-16939BEACD67";
- var expdate = new Date();
- //当前时间加上两周的时间
- expdate.setTime(expdate.getTime() + 14 * (24 * 60 * 60 * 1000));
- SetCookie(id, usr, expdate);
- };
- //用户名失去焦点时调用该方法
- function GetPwdAndChk() {
- var usr = document.getElementById('name').value;
- var pwd = GetCookie(usr);
- if (pwd != null) {
- document.getElementById('savePW').checked = true;
- document.getElementById('password').value = pwd;
- } else {
- document.getElementById('savePW').checked = false;
- document.getElementById('password').value = "";
- }
- };
- //取Cookie的值
- function GetCookie(name) {
- var arg = name + "=";
- var alen = arg.length;
- var clen = document.cookie.length;
- var i = 0;
- while (i < clen) {
- var j = i + alen;
- //alert(j);
- if (document.cookie.substring(i, j) == arg)
- return getCookieVal(j);
- i = document.cookie.indexOf(" ", i) + 1;
- if (i == 0)
- break;
- }
- return null;
- };
- function getCookieVal(offset) {
- var endstr = document.cookie.indexOf(";", offset);
- if (endstr == -1)
- endstr = document.cookie.length;
- return unescape(document.cookie.substring(offset, endstr));
- };
- //写入到Cookie
- function SetCookie(name, value, expires) {
- var argv = SetCookie.arguments;
- //本例中length = 3
- var argc = SetCookie.arguments.length;
- var expires = (argc > 2) ? argv[2] : null;
- var path = (argc > 3) ? argv[3] : null;
- var domain = (argc > 4) ? argv[4] : null;
- var secure = (argc > 5) ? argv[5] : false;
- document.cookie = name
- + "="
- + escape(value)
- + ((expires == null) ? "" : ("; expires=" + expires
- .toGMTString()))
- + ((path == null) ? "" : ("; path=" + path))
- + ((domain == null) ? "" : ("; domain=" + domain))
- + ((secure == true) ? "; secure" : "");
- };
- function ResetCookie() {
- var usr = document.getElementById('name').value;
- var expdate = new Date();
- SetCookie(usr, null, expdate);
- };
- });
- 转自:http://blog.csdn.net/u013614451/article/details/42201799
js实现cookie记住密码的更多相关文章
- cookie记住密码/base64加密(js控制)
cookie记住密码/base64加密(js控制) • 配置cookie //设置cookie function setCookie ( name, value, expdays ) { var ex ...
- cookie记住密码功能
很多门户网站都提供了记住密码功能,虽然现在的浏览器都已经提供了相应的记住密码功能 效果就是你每次进入登录页面后就不需要再进行用户名和密码的输入: 记住密码功能基本都是使用cookie来进行实现的,因此 ...
- 锋利的Jquery之插件Cookie记住密码
先下载Jquery cookie js ,下载路径: http://plugins.jquery.com/cookie/ 记住,jquery的包要放在cookie的包前面,否则会产生异常 <!D ...
- jquery.cookie.js实现cookie记住用户名和密码
记得导入 <script src="jquery.js" type="text/javascript"></script> <sc ...
- asp.net中用cookie记住密码上次不用登陆
------最佳解决方案--------------------写入CookieResponse.Cookies["UserName"].Value = "用户名&quo ...
- python+selenium利用cookie记住密码
先上代码 1 from selenium import webdriver 2 from time import sleep 3 4 dr = webdriver.Chrome() 5 dr.get( ...
- jquery.cookie.js 操作cookie实现记住密码功能的实现代码
jquery.cookie.js操作cookie实现记住密码功能,很简单很强大,喜欢的朋友可以参考下. 复制代码代码如下: //初始化页面时验证是否记住了密码 $(document).ready( ...
- 【原创】js中利用cookie实现记住密码功能
在登录界面添加记住密码功能,我首先想到的是在java后台中调用cookie存放账号密码,大致如下: HttpServletRequest request HttpServletResponse res ...
- node.js平台下,利用cookie实现记住密码登陆(Express+Ejs+Mysql)
本博文需有node.js+express+mysql入门基础,若基础薄弱,可参考博主的其他几篇node.就是博文: 1.下载Mysql数据库,安装并配置 创建用户表供登录使用: 2.node.js平台 ...
随机推荐
- 任意阶幻方(魔方矩阵)C语言实现
魔方又称幻方.纵横图.九宫图,最早记录于我国古代的洛书.据说夏禹治水时,河南洛阳附近的大河里浮出了一只乌龟,背上有一个很奇怪的图形,古人认为是一种祥瑞,预示着洪水将被夏禹王彻底制服.后人称之为&quo ...
- web缓存
web缓存HTTP协议的一个核心特性,它能最小化网络流量,并且提升用户所感知的整个系统响应速度. 什么能被缓存? *Logo和商标图像 *普通的不变化的图像(例如,导航图标) *CSS样式表 *普通的 ...
- 深入浅出设计模式——迭代器模式(Iterator Pattern)
模式动机 一个聚合对象,如一个列表(List)或者一个集合(Set),应该提供一种方法来让别人可以访问它的元素,而又不需要暴露它的内部结构.针对不同的需要,可能还要以不同的方式遍历整个聚合对象,但是我 ...
- [Oracle] SQL*Loader 详细使用教程(1)- 总览
SQL*Loader原理 SQL*Loader是Oracle提供的用于数据加载的一种工具,它比较适合业务分析类型数据库(数据仓库),能处理多种格式的平面文件,批量数据装载比传统的数据插入效率更高. ...
- Linux中关于安装包的分析。——Arvin
初接解LINUX的,同样都是for linux,但rpm.tar.gz.deb包还是有很大区别的,这种区别可使安装过程进行不下去.那我们应该下载什么格式的包呢? rpm包-在红帽LINUX.SUSE. ...
- SQL Server如何删除多余tempDB文件
某时,创建了多个tempDB文件,已经超过了服务器核心数,现象删除tempDB文件,使其保持与CPU核心数相同.但是在删除的时候,发现无法删除,报出错误:无法删除文件“tempdev3”,因为它不能为 ...
- Android平板上开发应用的一点心得——精确适配不同的dpi和屏幕尺寸
一.引言 Android的开源使厂商无需自行研发OS,大大降低了研发.生产的成本,使得Android平板品牌如雨后春笋般爆发,山寨机厂商们似乎又找到了一丝希望.与此同时带来的是广大开发者的苦不堪言,各 ...
- Java与mysql数据库编程中遇见“Before start of result set at com.mysql.jdbc.SQLError.createSQLException” 的解决办法
这个Bug是因为在取出ResultSet对象,对其进行操作时,没有采用.next()方法将ResultSet对象的光标移至指定行,不管Statement对象执行SQL语句是否十分确定能搜出记录,也不可 ...
- jQuery水平下拉菜单实现
<!DOCTYPE html> <html> <head> <title>jQuery水平下拉菜单实现</title> ...
- C#窗体 WinForm 文件操作
文件及文件夹操作 C/S:WinForm可以操作客户端文件 Client ServerB/S:浏览器服务 Brower Server 命名空间:using system .IO; 1. File类:文 ...