一个程序员的价值体现不是他会写什么,而是他的思维,无论什么任务,只要你能理清思路,明白自己要做什么,现在在做什么,这样才会避免走很多错路。
需求:保存用户输入的账号、密码
思路:
1.账号、密码保存方式———Cookie(客户端)
2.登录页面增加按钮,用户可以自主选择是否将自己的用户名、密码保存
实际开发步骤:(本人习惯先将jsp页面整理好,再添加相应功能,完善代码)
第一步:写login.jsp
HTML部分
这里写代码片
<tr>
<td>
<input id="rememberMe" name="rememberMe" type="checkbox" value="" /> 记住当前账号<br/>
</td>
</tr>
这里写代码片
JS部分
这里写代码片
$("#rememberMe").change(function(){
if($("#rememberMe").prop("checked")){
$("#rememberMe").attr("value","y");
}else{
$("#rememberMe").attr("value","");
}
});
这里写代码片
第二步:Controller 登录代码中增加判断是否已存在用户信息,没有则增加Cookie
这里写代码片
这里写代码片
Cookie[] cookies=request.getCookies();
//判断是否需要处理Cookie
boolean flag = true;
if(cookies.length>=0 && rememberMe.equals("y")){
for(int i=0;i<cookies.length;i++){
if(cookies[i].getValue().equals(account)){
flag = false;
}
}
}
if(flag==true){
addCookie(rememberMe,account,password,request,response);
}
增肌addCookie方法
这里写代码片
/**
* 进行Cookie验证处理上次登录的用户名以及密码
* @param account
* @param password
* @param request
* @param response
* @throws UnsupportedEncodingException
*/
public void addCookie(String rememberMe,String account,String pwd,HttpServletRequest request,HttpServletResponse response) throws UnsupportedEncodingException{
if(!StringUtil.isEmptyString(account)){
//创建Cookie
Cookie nameCookie=new Cookie("username",URLEncoder.encode(account,"utf-8"));
Cookie pwdCookie=new Cookie("pwd",URLEncoder.encode(pwd,"utf-8"));
//设置Cookie的父路径
nameCookie.setPath(request.getContextPath()+"/");
pwdCookie.setPath(request.getContextPath()+"/");
//保存Cookie
nameCookie.setMaxAge(7*24*60*60);
pwdCookie.setMaxAge(7*24*60*60);
//加入Cookie到响应头
response.addCookie(nameCookie);
response.addCookie(pwdCookie);
}
}
这样做就基本完成
增加后效果展示:
新手勿喷,大神赏脸,如发现什么问题,欢迎指点一二!小弟在此多谢