登陆页面实现保存帐号密码功能

原创 2014年05月20日 23:23:32

通过Cookie实现"记住我"的功能

1.登陆页面如下:


每个字段对应的属性name如下表:

用户帐号 name
登陆密码 password
验证码 checkNum
记住我 rememberMe

2.Action中的处理如下:

在用户第一次登陆后,进行Cookie进行处理

登陆处理

/**登陆*/
public String login() throws Exception{
	//处理验证码:判断验证码输入的是否正确
	boolean flag=VerificationCodeUtil.isCheckNum(request);
	if(!flag){
		this.addFieldError("checkNum", "验证码有误");
		return "loginUI";
	}
	User user=userService.findByLoginNameAndPassword(model.getName(),model.getPassword());
	if(user==null){
		addFieldError("login", "用户名或密码不正确");
		return "loginUI";
	}else{
		ActionContext.getContext().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);
	}
}


3.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>


4.可能出现的问题

如果出现设置了却没有自动填写用户名和密码,则可能是地址的问题:

解决办法:

1.进入Internet选项,点击浏览历史记录一栏的设置


2.进入浏览记录设置后,点击查看文件


3.在弹出的文件夹里找到Cookie文件,名字为你的项目名+“/”,格式如下图,这个文件一般在文件夹的最后面,将此文件复制到桌面,注:此文件是无法直接在该文件夹里打开的。



4.如下图,第三行为保存项目工程的路径,此时在Action里的Cookie处理中,根据该地址设置对应的Cookie父路径即可,上文已经设置。


版权声明:本文为博主原创文章,未经博主允许不得转载。博客地址:http://blog.csdn.net/v123411739

登录界面—记住用户名和密码

每次登录都需要输入完整的帐号与密码,那么可以设置记住密码,再次登录一点即可! 代码如下: 第一部分:文本框 form id="login" name="login" action="login" ...

在登录页面如何实现记住用户名和密码这个功能

在登录页面如何实现记住用户名和密码这个功能? 思路:使用cookie的方法将用户名和密码保存到本地电脑上,再设置一个cookie的有效时间就行了 安全性怎么破? 加密数据? -------------...

JavaWeb学习----Cookie实现记住密码的功能

欢迎转载,但请保留文章原始出处→_→  生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/409...

B/S系统登录记住密码的实现

用Js实现B/S系统登录时记住密码的功能分为两步:     1.第一次登录时如果选中记住密码,将用户名和密码保存到cookie中去。      2.登录时获取cookie中的用户名和密码设置给登录界面...

JAVA之登录页面记住密码之COOKIE实现

每次在进入登录页面的时候都要进行用户名和密码的输入,用户的体验不好。 使用cookie来实现记住密码的功能。我实现的是逻辑比较简单的记住密码操作;并没有涉及安全性比较高的业务;比如说与支付相关的密码...

用户登录记住密码(SharePreference的使用)

最近学习了SharedPreference的相关知识,运用这些知识可以实现用户登录记住密码的功能。 下图是我们点开App之后的主界面 当我们输入了错误的用户名或密码时,湖出现下图的提示 当我们输...

cookie、session及实现记住密码,自动登录

标签:cookie session 在登录帐号、密码框下,有三种帐号登录模式可供选择,用户可根据自己的具体情况选择其中一种适合自己的模式。 1、网吧模式:勾选网吧模式后,登录的帐号会在...

用户登录流程中,记住密码和自动登录逻辑。

就是普通登录流程中记住密码和自动登录的功能, 因为感觉checkbox 控件太小点击有点困难。所以在外层的父控件上添加了点击监听。...

前端记住密码功能

前端记住密码功能

登录之记住用户与自动登录

如题,大家在使用各种网站时,为了更好的用户体验,网站往往会提供这两种功能之一,以便下次登录方便。                    今天要讲述的是用java操作cookie来实现这两个功能,网络...
  • ghsau
  • ghsau
  • 2012年09月05日 23:42
  • 6164
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:登陆页面实现保存帐号密码功能
举报原因:
原因补充:

(最多只允许输入30个字)