java实现记住密码功能(利用cookie)
<br> <input type="text" id="userName" name="userName" value="${username }" placeholder="用户名"> <br> <input type="password" id="pwd" name="pwd" maxLength="50" value="${password }" placeholder="密码"> <br> <label for="remember-me"> <input name="aaaa" type="checkbox" onclick="remember();"> 记住密码 </label>
js代码:
$(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);
$("#pwd").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 "";
}
//记住密码功能
function remember(){
var remFlag = $("input[type='checkbox']").is(':checked');
if(remFlag==true){ //如果选中设置remFlag为1
//cookie存用户名和密码,回显的是真实的用户名和密码,存在安全问题.
var conFlag = confirm("记录密码功能不宜在公共场所(如网吧等)使用,以防密码泄露.您确定要使用此功能吗?");
if(conFlag){ //确认标志
$("#remFlag").val("1");
}else{
$("input[type='checkbox']").removeAttr('checked');
$("#remFlag").val("");
}
}else{ //如果没选中设置remFlag为""
$("#remFlag").val("");
}
}
后台:
//用户名 String name = request.getParameter("userName"); //密码 String passWord = request.getParameter("pwd"); //记住用户名、密码功能(注意:cookie存放密码会存在安全隐患) 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 = name+","+passWord; Cookie userCookie=new Cookie("loginInfo",loginInfo); userCookie.setMaxAge(30*24*60*60); //存活期为一个月 30*24*60*60 userCookie.setPath("/"); response.addCookie(userCookie); }