Cookie俩步操作实现n天免登陆

实现这个功能主要思路是:在登录成功的时候去给用户名和密码加上Cookie,将他们的值存在Cookie中,为了下次登录记住用户名和密码,然后在登录界面,获取所有的cookie,然后将值一一遍历出来。和用户名,密码作对比,并将它们的值放在表单中。

我在这里用了是否要用户去免登录的选项:

//获取请求数据
		String uname = req.getParameter("uname");
		String pwd = req.getParameter("pwd");
		String remember = req.getParameter("remember");	
		//处理请求数据
		UserService us=new UserServiceImpl();
		User user = us.selUserByNP(uname, pwd);
		//响应浏览器
		//创建session
		HttpSession session = req.getSession();
		if (user!=null) {
			// 将用户名和密码存放在cookie对象中,实现三天免登陆(不清除浏览器的cookie)
			String name = URLEncoder.encode(uname, "utf-8");
			Cookie cname = new Cookie("uname",name);
			Cookie cpwd = new Cookie("pwd",pwd);
			if ("yes".equals(remember)) {
				cname.setMaxAge(24*3600*3);
				cpwd.setMaxAge(24*3600*3);
			} else {
				cname.setMaxAge(0);
				cpwd.setMaxAge(0);	
			}
			// 设置有效页面
			cname.setPath("/55/");
			cpwd.setPath("/55/");
			// 将cookie对象存放至response
			resp.addCookie(cname);
			resp.addCookie(cpwd);
			session.setAttribute("User", user);
			//登录成功 重定向到main.jsp
			resp.sendRedirect("/55/main.jsp");
		} else {
			session.setAttribute("flag", "loginfalse");
			//登录失败 返回登录界面,并且给上失败标记
			resp.sendRedirect("/55/login.jsp");

然后我们再去登录界面去获取cookie:

<!-- 声明java代码块 -->
	  			<%
	  				String uname="";
	  				String pwd = "";
	  				String check="";
  					//获取所有cookie对象
  					Cookie[] cookies= request.getCookies();
  					if(cookies!=null){
	  					for(int i=0;i<cookies.length;i++){
	  						Cookie cookie=cookies[i];
	  						if("uname".equals(cookie.getName())){
	  							uname=cookie.getValue();
	  							uname=URLDecoder.decode(uname, "utf-8");
	  							check="checked";
	  						}
	  						
	  						if("pwd".equals(cookie.getName())){
	  							pwd=cookie.getValue();
	  						}
	  					}
  					}
  				%> 

只需要这俩步操作。可以完成实现n天登录:

 

用户名和密码是在页面自动显示的

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值