JS前端点击记住密码之后再次登录时显示账号密码

2023-10-31

一、前端html代码

<div>
   <label>
        <h3>账号</h3>
        <input
               type="text"
               name="loginName"
               id="loginName"
               value="${username}"
               placeholder="请输入账号"></a>
    </label>
    <label>
        <h3>密码</h3>
        <input
               type="password"
               name="password"
               id="password"
               value="${password}"
               placeholder="请输入密码">
    </label>
    <div style="">
        <label><input type="checkbox" name="remember" onclick="remember()">   记住密码</label>
    </div>
    <div class="btnBox_2">
        <a href="#" id="btn">&nbsp;</a>
    </div>
    </div>

二、JS代码。

$(document).ready(function(){
    //记住密码功能
    var str = getCookie("loginInfo");//从cookie中获取账号、密码信息
    str = str.substring(0,str.length);
    var username = str.split("#")[0];
    var password = str.split("#")[1];
    //自动填充用户名和密码
    $("#loginName").val(username);
    $("#password").val(password);
});
//获取cookie
function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if (c.indexOf(name) != -1) return c.substring(name.length, c.length);
    }
    return "";
}
var remFlag = "";
//记住密码功能
function remember() {
    remFlag = $("input[type='checkbox']").is(':checked');
    if(remFlag==true){ //如果选中设置remFlag为1
        //cookie存用户名和密码,存在安全隐患
        var conFlag = confirm("确定使用记住密码功能吗!");
        if(conFlag){ //确认标志
            remFlag = "1";
        }else{
            $("input[type='checkbox']").removeAttr('checked');
            remFlag = "";
        }
    }else{ //如果没选中设置remFlag为""
        remFlag = "";
    }
};

//点击确定按钮往Controller层传送数据
$(function () {
        $(".btnBox_2").click(function () {
            var loginName = document.getElementById('loginName').value;
            var password = document.getElementById('password').value;

            if (loginName == "" || password == "") {
                return;
            }

            $.ajax({
                url: controller层方法的调用地址,
                data: {"loginName": loginName, "password": password,"remFlag":remFlag},
                type: 'post',
                dataType: "json",
                success: function (data) {
                    if (data.success == true) {//如果返回来的信息说明提交的信息为正确的
                        var deptId = data.obj;
                        window.location.href = 完成登录需要跳转页面的url地址;//正确登录后页面跳转至
                    }else{//弹窗提醒
                        if (data.obj==1){
                            var c = dialog({
                                title: '该账号不存在!'
                            }).showModal();
                        }else if(data.obj==2){
                            var c = dialog({
                                title: '密码错误,请重新输入。'
                            }).showModal();
                        }
                    }
                }
            });
        });
    });

三、controller层代码,将用户名密码存入cookie中。(注:在业务层中)

if("1".equals(remFlag)){ //"1"表示用户勾选记住密码
    String loginInfo = loginName+"#"+password;
    Cookie userCookie=new Cookie("loginInfo",loginInfo);

    userCookie.setMaxAge(30*24*60*60);   //存活期为一个月 30*24*60*60
    userCookie.setPath("/");
    response.addCookie(userCookie);
}

四、取消记住密码:删除cookie

Cookie cookie = new Cookie("loginInfo","");
cookie.setMaxAge(0); //设置立即删除
cookie.setPath("/");
response.addCookie(cookie);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS前端点击记住密码之后再次登录时显示账号密码 的相关文章

随机推荐

  • 3D点云之语义分割(相关官方示例介绍)

    之前在博客中提到 会考虑用深度学习来对3D点云进行处理 接下来迈出脚步 先整几个例子来熟悉它 例子原型来源于官网 博主在其基础上做了一些代码修改 一 例子参考 1 Keras中的资源 Code examples 2 openvinotool
  • 商用密码应用与安全性评估要点笔记(SM3密码杂凑算法)

    1 杂凑密码算法 可以对任意长度的消息M进行压缩 输出定长的消息摘要 杂凑值h 表示为h H M 一般来说 H具备三个性质 1 单向性 已知h 试图找打M满足h H M 是困难的 2 抗第二 二次原像攻击 弱抗碰撞性 给定M1 试图找到M2
  • 【Python】使用Python读取JSON文件中的内容

    文章目录 一 JSON文件简介 二 借助Python处理JSON文件 1 读取字典类型的JSON文件 2 读取列表类型的JSON文件 3 封装读取JSON文件的函数 一 JSON文件简介 在自动化测试过程中 会将部分数据保存到JSON文件中
  • C# 后端开发学习规划及示例代码

    C 后端开发学习规划及示例代码 作为一名想要学习 C 后端开发的学习者 你需要有一个明确的学习规划 以便在学习过程中有条不紊地掌握必要的知识和技能 以下是一个详细的学习规划 同时附有相应的示例代码 帮助你开始你的学习之旅 学习基础知识 在开
  • openGL之API学习(一七九)材质Material原理

    在光线照射到某个物体表面的时候 总体上会出现三种反应 吸收 反射以及折射 其中反射又分为漫反射和镜面反射 而所谓的能量守恒法则说的则是 能量不可能凭空产生也不可能凭空消失 只可能发生转换 用在光线传播过程中则可以得到这样一个公式 入射能量
  • js高级 5.作用域与执行上下文的区别与联系

    作用域与执行上下文的区别 区别1 全局作用域之外 每个函数都会创建自己的作用域 作用域在函数定义时就已经确定了 而不是在函数调用时 全局执行上下文环境是在全局作用域确定之后 js代码马上执行之前创建 函数执行上下文是在调用函数时 函数体代码
  • C++语法3——if switch break continue的定义及用法

    接上节 循环语句 这一节写的是判断语句 if else语句 基本语法 第一种 if bool 布尔变量 如果bool值为真执行的语句 else 如果bool值为假执行的语句 如果布尔表达式为 true 则执行 if 块内的代码 如果布尔表达
  • Windows—OpenGL core profile版本初始化

    Windows OpenGL core profile版本初始化 请求OpenGL接口 初始化GLEW 设置DC像素格式 创建OpenGL上下文 绑定OpenGL渲染上下文 请求OpenGL接口 因为OpenGL只是一个标准 规范 具体的实
  • 视频 服务器运行时失败,Windows Media Player服务器运行失败的解决办法讲解

    当大家遇到Windows Media Player服务器运行失败 怎么解决呢 小编给大家分享一个Windows Media Player服务器运行失败的解决办法讲解 希望可以帮到大家 Windows Media Player服务器运行失败的
  • Could not locate device support files. This iPhone X (Model A1865, A1901, A1902, A1903) is running i

    出现的问题如下 Could not locate device support files This iPhone X Model A1865 A1901 A1902 A1903 is running iOS 12 0 16A5327f w
  • eclipse把server目录删了,怎么加回去啊

    new一个新的出来就行有了 具体操作步骤 在左边项目树的空白区域点鼠标右键 弹出菜单后依次选择 new other server server 然后选择Apache tomcat对应版本 如果是jboss就选jboss对应版本 点完成在树上
  • 串口连接传输文件

    文章目录 一 实验内容 二 实验准备 三 实验过程 四 总结 一 实验内容 串口传输文件的练习 将两台笔记本电脑 借助 usb转rs232 模块和杜邦线 建立起串口连接 然后用串口助手等工具软件 带文件传输功能 将一台笔记本上的一个大文件
  • ARouter 基础使用详解

    文章目录 参考资料 配置ARouter 初始化与销毁 初始化 销毁 路由注解与跳转 Activity之间的跳转 路径定义 代码示例 Fragment之间的切换 Fragment注入路由 Fragment的获取与切换 带参数的跳转 示例代码
  • Springboot yml 复杂对象的二维数组

    有两种形式可以表达这种需求 一 通过建立一个二维维数组来表述 1 Grid类 Data AllArgsConstructor NoArgsConstructor public class Grid Long x 栅格中心位置 x 值 Lon
  • 挖矿病毒排查并清除

    近期 公司内网linux环境出现了挖矿病毒 该病毒占满cpu进行挖矿 导致系统缓慢 现摸索了以下步骤进行清除 1 检测服务器是否有挖矿病毒 使用top命令查看进程及占用cpu百分比 如果该进程名称为随机字符串 且cpu占的非常的高 则很可能
  • OSPF篇——SPF算法——002

    目录 最短路径优先算法 SPF 阶段1 构建SPF树 阶段2 计算最优路由 最短路径优先算法 SPF 在一类LSA和二类LSA中 包括了拓扑信息和路由信息 OSPF将依据SPF算法和各类LSA LSA内既包含拓扑信息又包含路由信息 但是分开
  • 关于VS Code 断点失效(断点变空心)

    问题 VS code 断点再有的文件中能正常使用 有的文件中打断点会变成灰色空心 这部分代码没问题能正常运行 但是断点失效无法重断点处停下来 解决方案 1 百度查看相似案例解决方案 2 这是我的问题解决方法 查看代码是否有问题 VScode
  • linux系统之字符设备驱动——DS18B20温度传感器

    linux系统之字符设备驱动 DS18B20温度传感器 1 原理图 2 驱动程序 驱动程序 ds18b20 c Author your name Date 2021 02 06 19 41 29 LastEditTime 2021 02 2
  • css根据内容自动调整td高度,css – 如何使div高度100%内部td的100%

    这个问题似乎在stackoverflow上至少有10次 但是其中一个实际上没有答案 这一点略有不同 因为问题出现在Firefox中 我的桌子高度为100 高度为100 我把td的边界设置成可以看到的东西 我看到td是预期的100 我把一个d
  • JS前端点击记住密码之后再次登录时显示账号密码

    一 前端html代码 div div