Java使用SSM框架实现登录页面记住密码功能
最终效果展示:
1、登录页面JSP代码
<label class="checkbox"> <input type="checkbox" name="rememberMe" id="rememberMe" onclick="remember();"/> 记住密码 </label>
//选中记住密码触发事件,如果选中就赋值为1 ,否则赋值为0 function remember(){ var remFlag = $("input:checkbox").is(':checked'); if(remFlag){ //cookie存用户名和密码,回显的是真实的用户名和密码,存在安全问题. var conFlag = confirm("记录密码功能不宜在公共场所使用,以防密码泄露.您确定要使用此功能吗?"); if(conFlag){ //确认标志 $("#rememberMe").val("1"); }else{ $("input:checkbox").removeAttr('checked'); $("#rememberMe").val("0"); } }else{ //如果没选中设置remFlag为"" $("#rememberMe").val("0"); } }
//启动函数来获取cookie中保存的用户信息
$(function(){
//cookie数据保存格式是key=value;key=value;形式,loginInfo为保存在cookie中的key值,具体看controller代码 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);
});
//获取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 ""; }
2、登录请求后controller代码
//创建Cookie对象,保存用户信息,设定cookie失效时间,通过response添加cookie
if ("1".equals(cookieFlag)) { String loginInfo = username + "," + password; Cookie userCookie = new Cookie("loginInfo", loginInfo); userCookie.setMaxAge(1 * 24 * 60 * 60); // 存活期为一天 1*24*60*60 userCookie.setPath("/"); res.addCookie(userCookie); }