cookie实现登陆页面保存用户名

密码也可以保存,但我没实现出来

1.首先是用户名,密码的input 和保存状态的checkbox

<input class="ipt" type="text" name='username' value='${name}'/>
<input class="ipt" type='password' name='password' id='password' />
<input style=" margin-left:60px; margin-right:10px; " type="checkbox" name="rememberMe" id="rememberMe" />


没找到怎么保存checkbox的状态,我就自己写了个

<script>
	window.onload = function() {
		if ('${name}' != '') {
			document.getElementById('rememberMe').checked = true;
		} else {
			document.getElementById('rememberMe').checked = false;
		}
	}
</script>


2.然后在jsp顶部加入java代码,用于读取cookie

<%
	String name = "";
	String psw = "";
	String checked = "";
	Cookie[] cookies = request.getCookies();
	if(cookies != null && cookies.length>0){
		for(int i =0; i<cookies.length; i++){
			if(cookies[i].getName().equals("name")){
				name=cookies[i].getValue();
				request.setAttribute("name",name);
			}
				
			if(cookies[i].getName().equals("psw")){
				psw=cookies[i].getValue();
				request.setAttribute("psw",psw);
			}
		}
	}
%>


3.其次,在登陆到后台验证完毕密码后面加入

//处理Cookie
addCookie(username , pwd ,response ,request);

下面是addCookie这个方法

/**Cookie的实现	
	 * @throws UnsupportedEncodingException **/
	private void addCookie(String name, String password,HttpServletResponse response, HttpServletRequest request) throws UnsupportedEncodingException  {
		if(StringUtils.isNotBlank(name)&&StringUtils.isNotBlank(password)){
			//创建Cookie
//			Cookie nameCookie=new Cookie("name",URLEncoder.encode(name,"utf-8"));
			Cookie nameCookie=new Cookie("name",name);
			Cookie pswCookie=new Cookie("psw",password);
			
			//设置Cookie的父路径
			nameCookie.setPath(request.getContextPath()+"/");
			pswCookie.setPath(request.getContextPath()+"/");
			
			//获取是否保存Cookie
			String rememberMe=request.getParameter("rememberMe");
			if(rememberMe==null){//不保存Cookie
				nameCookie.setMaxAge(0);
				pswCookie.setMaxAge(0);
			}else{//保存Cookie的时间长度,单位为秒
				nameCookie.setMaxAge(7*24*60*60);
				pswCookie.setMaxAge(7*24*60*60);
			}
			//加入Cookie到响应头
			response.addCookie(nameCookie);
			response.addCookie(pswCookie);
		}
	}
}


参照了:http://www.2cto.com/kf/201405/302677.html 和 http://blog.sina.com.cn/s/blog_6d187d2701019ayb.html


 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值