使用cookie实现记住密码功能,以及可能出现的问题500

java使用cookie实现记住密码:
后端:

String username = request.getParameter("username");
		String password = request.getParameter("password");
		 String remFlag = request.getParameter("remFlag");
        if("1".equals(remFlag)){ //"1"表示用户勾选记住密码
            /*String cookieUserName = Utils.encrypt(name);
            String cookiePwd = Utils.encrypt(passWord);
            String loginInfo = cookieUserName+","+cookiePwd;*/
            String loginInfo = username+"#"+password;   //注此处分割符要注意避免使用cookie不能包含的内容:不能包含空格,方括号,圆括号,等于号(=),逗号,双引号,斜杠,问号,@符号,冒号,分号,否则会报错500
            Cookie userCookie=new Cookie("loginInfo",loginInfo); 

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

前端:

<div class="layui-form-item">
						<label class="layui-form-label">用户名:</label>
						<div class="layui-input-inline">
							<input id="username" name="username" lay-verify="title" autocomplete="off" placeholder="请输入您的手机号/用户名" class="layui-input" type="text">
						</div>
					</div>
					<div class="layui-form-item">
						<label class="layui-form-label">密码:</label>
						<div class="layui-input-inline" >
							<input id="password" name="password" placeholder="请输入您的密码" autocomplete="off" class="layui-input" type="password"><p style="color:red;" id="error"></p>
						</div>
					</div>
					<div class="layui-form-item layui-checkbox" pane="">
						<label class="layui-form-label"></label>
						<div class="layui-input-inline">
						 	<input class="fl" type="checkbox" lay-skin="primary" id="remFlag" lay-filter="owner_all" value="" title="记住密码">记住密码
							<a href="javascript:void(0)" class="fr">忘记密码</a>
						</div>
					</div>
					<div class="layui-form-item">
						<label class="layui-form-label"></label>
						<div class="layui-input-inline">
							<button onclick="login();" class="layui-btn">登录</button>
						</div>
					</div>
$(document).ready(function(){
        //记住密码功能
        var str = getCookie("loginInfo");
        str = str.substring(1,str.length-1);
        var username = str.split("#")[0];
        var password = str.split("#")[1];
        //自动填充用户名和密码
        $("#username").val(username);
        $("#password").val(password);
        $("#remFlag").prop("checked",true);
});

//获取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 "";
}

因为分隔符的问题,造成了500得错误:
在这里插入图片描述
切记:
String loginInfo = username+"#"+password; //注此处分割符要注意避免使用cookie不能包含的内容:不能包含空格,方括号,圆括号,等于号(=),逗号,双引号,斜杠,问号,@符号,冒号,分号,否则会报错500

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值