zoukankan      html  css  js  c++  java
  • jQuery cookie记住用户名密码自动登录

    1、导入两个js文件

      1)、jquery-1.4.js

      2)、jquery.cookie.js

    2、login.jsp页面

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    
    <html>
    <head>
    
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport"
        content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    
    <script type="text/javascript"
        src="${pageContext.request.contextPath}/js/jquery-1.4.js"></script>
    <script type="text/javascript"
        src="${pageContext.request.contextPath}/js/jquery.cookie.js"></script>
    <script type="text/javascript">
    
        function addCookie(name, value, days, path) {
            /**添加设置cookie**/
            var name = escape(name);
            var value = escape(value);
            var expires = new Date();
            //设置cookie保存的时间
            expires.setTime(expires.getTime() + days * 3600000 * 24);
            //path=/,表示cookie能在整个网站下使用,path=/temp,表示cookie只能在temp目录下使用  
            path = path == "" ? "" : ";path=" + path;
            //GMT(Greenwich Mean Time)是格林尼治平时,现在的标准时间,协调世界时是UTC  
            //参数days只能是数字型  
            var _expires = (typeof days) == "string" ? "" : ";expires="
                    + expires.toUTCString();
            document.cookie = name + "=" + value + _expires + path;
        }
        function getCookieValue(name) {
            /**获取cookie的值,根据cookie的键获取值**/
            //用处理字符串的方式查找到key对应value  
            var name = escape(name);
            //读cookie属性,这将返回文档的所有cookie  
            var allcookies = document.cookie;
            //查找名为name的cookie的开始位置  
            name += "=";
            var pos = allcookies.indexOf(name);
            //如果找到了具有该名字的cookie,那么提取并使用它的值  
            if (pos != -1) { //如果pos值为-1则说明搜索"version="失败  
                var start = pos + name.length; //cookie值开始的位置  
                var end = allcookies.indexOf(";", start); //从cookie值开始的位置起搜索第一个";"的位置,即cookie值结尾的位置  
                if (end == -1)
                    end = allcookies.length; //如果end值为-1说明cookie列表里只有一个cookie  
                var value = allcookies.substring(start, end); //提取cookie的值  
                return (value); //对它解码        
            } else { //搜索失败,返回空字符串  
                return "";
            }
        }
        function deleteCookie(name, path) {
            /**根据cookie的键,删除cookie,其实就是设置其失效**/
            var name = escape(name);
            var expires = new Date(0);
            path = path == "" ? "" : ";path=" + path;
            document.cookie = name + "=" + ";expires=" + expires.toUTCString()
                    + path;
        }
    
        /**实现功能,保存用户的登录信息到cookie中。当登录页面被打开时,就查询cookie**/
        window.onload = function(){
            //获取cookie中存放的用户名
            var userNameValue = getCookieValue("userName");
            document.getElementById("userName").value = userNameValue;
            //获取cookie中存放的密码
            var userPassValue = getCookieValue("userPass");
            document.getElementById("password").value = userPassValue;
            //如果账号密码为空则弹出提示,输入用户名密码
            if(userNameValue==""&&userPassValue==""){    
                $("input[name='userName']").focus();
            //如果账号密码不为空则直接执行登录    
            }else if(userNameValue!=""&&userPassValue!=""){
            
            var vdata = {
                    userName : userNameValue,
                    password : userPassValue
                };
    
                $.post("tevo_loginInit.action", vdata, function(data) {
                    if (data == "succ") {
                        $(".login_info").show();
                        $(".login_info").html("&nbsp;&nbsp;正在登录中...");
                        location.href = "main.action";
                    } else if (data == "error1") {
                        alert("用户未分配角色或权限!");
                    } else if (data == "error2") {
                        alert("用户无效!");
                    } else if (data == "error3") {
                        alert("用户未分配角色!");
                    } else if (data == "error4") {
                        alert("用户角色未分配权限!");
                    } else if (data == "error5") {
                        alert("用户所分配权限未分配功能!");
                    } else {
                        alert("用户名或者密码错误,请重新输入!");
                    }
                });
            }
            
        };
        // 回车登录
        function keyLogin() {
            $("input[name='userName']").keydown(function(event) {
                var event = arguments.callee.caller.arguments[0] || window.event;// 消除浏览器差异
                if (event.keyCode == 13) {
                    $("input[name='password']").focus();
                }
            });
            $("input[name='password']").keydown(function(event) {
                if (event.keyCode == 13) {
                    userLogin();
                    document.getElementByIdx_x("userLogin").click();
                }
            });
    
        }
        
        function userLogin() {
            /**用户登录,其中需要判断是否选择记住密码**/
            //简单验证一下  
            var userName = document.getElementById("userName").value;
            if (userName == '') {
                alert("请输入用户名!");
                return;
            }
            var userPass = document.getElementById("password").value;
            if (userPass == '') {
                alert("请输入密码!");
                return;
            }
            var objChk = document.getElementById("chkRememberPass");
            if (objChk.checked) {
                //添加cookie  
                addCookie("userName", userName, 365, "/");
                addCookie("userPass", userPass, 365, "/");
    
                var vuserName = $("#userName").val();
                var vpassword = $("#password").val();
    
                if (vuserName == "" || vuserName == undefined || vuserName == null) {
                    alert("用户名不能为空");
                    return false;
                } else if (vpassword == "" || vpassword == undefined
                        || vpassword == null) {
                    alert("密码不能为空");
                    return false;
                }
        
                var vdata = {
                    userName : vuserName,
                    password : vpassword
                };
    
                $.post("tevo_loginInit.action", vdata, function(data) {
                    if (data == "succ") {
                        $(".login_info").show();
                        $(".login_info").html("&nbsp;&nbsp;正在登录中...");
                        location.href = "main.action";
                    } else if (data == "error1") {
                        alert("用户未分配角色或权限!");
                    } else if (data == "error2") {
                        alert("用户无效!");
                    } else {
                        alert("用户名或者密码错误,请重新输入!");
                    }
                });
            } else {
    
                //删除cookie的内容
                deleteCookie("userName", "/");
                deleteCookie("userPass", "/");
                var vuserName = $("#userName").val();
                var vpassword = $("#password").val();
    
                if (vuserName == "" || vuserName == undefined || vuserName == null) {
                    alert("用户名不能为空");
                    return false;
                } else if (vpassword == "" || vpassword == undefined
                        || vpassword == null) {
                    alert("密码不能为空");
                    return false;
                }
    
                var vdata = {
                    userName : vuserName,
                    password : vpassword
                };
    
                $.post("tevo_loginInit.action", vdata, function(data) {
                    if (data == "succ") {
    
                        $(".login_info").show();
                        $(".login_info").html("&nbsp;&nbsp;正在登录中...");
                        location.href = "main.action";
                    } else if (data == "error1") {
                        alert("用户未分配角色或权限!");
                    } else if (data == "error2") {
                        alert("用户无效!");
                    } else {
                        alert("用户名或者密码错误,请重新输入!");
                    }
                });
            }
        }
    </script>
    <title>登录</title>
    <style type="text/css">
    .center-in-center {
        position: absolute;
        top: 50%;
        left: 50%;
    }
    </style>
    </head>
    
    <body background="${pageContext.request.contextPath}/images/login.jpg"
        onkeydown="keyLogin();">
    
        <div class="center-in-center">
            <form id="login">
                用户名:&nbsp;&nbsp;<input type="text" name="userName" id="userName"
                    placeholder="请输入用户名" /><br />
                <br /> &nbsp;密码:&nbsp;&nbsp;&nbsp;&nbsp;<input type="password"
                    name="password" id="password" placeholder="请输入密码" /> <br />
                <br /> <br /> <input type="checkbox" id="chkRememberPass"
                    name="chkRememberPass" style="vertical-align:middle;"
                    checked="checked" /> <span
                    style="font-size:12px; color:blue; vertical-align:middle;">记住密码</span>
                <br />
                <br />
                <div align="center">
                    &nbsp;&nbsp;&nbsp;&nbsp;<input type="button" id="login"
                        onclick="userLogin()" value="登录" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                    <input type="reset" value="重置" />
                </div>
                <br />
                <div class="login_info" style="display:none;"></div>
                <div class="login_info2">&nbsp;&nbsp;</div>
            </form>
        </div>
    </body>
    </html>
  • 相关阅读:
    Overloaded的方法是否可以改变返回值的类型
    parseXXX的用法
    java的类型转换问题。int a = 123456;short b = (short)a;System.out.println(b);为什么结果是-7616?
    UVA 10405 Longest Common Subsequence(简单DP)
    POJ 1001 Exponentiation(大数处理)
    POJ 2318 TOYS(计算几何)(二分)
    POJ 1265 Area (计算几何)(Pick定理)
    POJ 3371 Flesch Reading Ease (模拟题)
    POJ 3687 Labeling Balls(拓扑序列)
    POJ 1094 Sorting It All Out(拓扑序列)
  • 原文地址:https://www.cnblogs.com/shoose/p/8393735.html
Copyright © 2011-2022 走看看