jsp servlet 实现记住我功能实现

http://blog.csdn.net/v123411739/article/details/26404691

1、登陆的时候 后台servlet

if(user==null){

	}else{
		request.getSession().put("user", user);
		//处理Cookie
		addCookie(model.getName(),model.getPassword(),response,request);
		return "toIndex";
	}

Cookie处理:

 

 

/**Cookie的实现	**/
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 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);
	}
}

2、jsp的处理

在登陆的JSP页面中加入下面代码,以获得用户名和密码并自动填写:

 

<%
	String name="";
	String psw="";
	String checked="";
	Cookie[] cookies=request.getCookies();
	if(cookies!=null&&cookies.length>0){	
		//遍历Cookie
		for(int i=0;i<cookies.length;i++){
			Cookie cookie=cookies[i];
			//此处类似与Map有name和value两个字段,name相等才赋值,并处理编码问题 
			if("name".equals(cookie.getName())){
				name=URLDecoder.decode(cookie.getValue(),"utf-8");
				//将"记住我"设置为勾选 
				checked="checked";
			}
			if("psw".equals(cookie.getName())){
				psw=cookie.getValue();
			}
		}
	}
 %>


最后对用户名,密码,记住我字段添加value即可:

 

 

<TR>
 	<TD class="td">用户帐号:</TD>
 	<TD class="td"><input name="name" type="text" value="<%=name %>" id="name"/></TD>
</TR>
<TR>
	<TD class="td">登录密码:</TD>
	<TD class="td"><input name="password" type="password" value="<%=psw %>" id="password"></TD>
</TR>
<TR>
	<TD class="td">记住我:</TD>
	<TD class="td"><input name="rememberMe" type="checkbox" id="rememberMe" class="checkbox" <%=checked %>></TD>
</TR>

转载于:https://my.oschina.net/chuibilong/blog/676800

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值