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

通过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父路径即可,上文已经设置。

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

时间: 2024-10-14 10:22:35

登陆页面实现保存帐号密码功能的相关文章

git保存帐号密码

每次更新git都要输入帐号密码比较麻烦,可以通过手动设置配置文件. window下: 进入home文件夹,一般是C:\Users\Administrator,创建.git-credentials文件(可以先创建一个git-credentials文件,然后在git bash下使用命令 mv git-credentials .git-credentials),打开文件,输入  http://{用户名}:{密码}@{服务器域名或ip} 保存 在bash下,执行 git config --global

torisegit 保存帐号密码

设置 -> git 编辑本地 .git/config 增加 [credential] helper = store

WPF中实现登陆窗口的“记住帐号”功能

1.在Login.xaml中添加资源: <XmlDataProvider x:Key="XmlDataProvider" Source="pack://application:,,,/5yue.PMS;Component/Config/SysConfig.xml" XPath="SysConfig"/> 2.使用ComboBox实现帐号输入: <ComboBox x:Name="UserName" Width

Android(安卓)手机登陆Exchange 2013邮箱帐号的配置

Android(安卓)手机登陆Exchange 2013邮箱帐号的配置 本博文介绍Android(安卓)手机配置Exchange 2013邮箱帐号,由于Android手机种类和固件版本太多,这里介绍比较通用的三星S5830的配置,请看步骤: 1.直接在应用程序中选择“电子邮件”,然后进入“设置电子邮件”界面如下, 输入邮箱地址和密码,点击“下一步”, 2.选择POP3帐户或IMAP(当然,选择这两种类型的提前是Exchange服务器已经启用了POP3或IMAP的服务), 3.在接收服务器设置界面

iphone(苹果)手机登陆Exchange 2013邮箱帐号的配置

iphone(苹果)手机登陆Exchange 2013邮箱帐号的配置 本博文介绍iphone(苹果)手机配置Exchange 2013邮箱帐号,直接看步骤: 1.打开iphone手机的“设置”界面如下,点击“邮件.通讯录.日历”选项: 2.点击“添加帐户”, 3.选择添加“Exchange”帐户, 4.输入Exchange 邮箱地址和密码,点击“下一步”, 5.输入Exchange邮箱服务器名称(注:完全限定域名),点击“下一步”,验证用户名和密码, 6.验证成功,界面如下: 以上已经完成了邮箱

如何修改SharePoint2013服务器场帐号密码

服务器远程登录帐号密码修改密码后,如何修改sharepoint服务器场管理员账户密码,今天登录了一下N久以前的搭建sharepoint2013服务器场的一台服务器器,登录进去以后直接提示帐号密码过期需要修改,结果手贱了一次直接改了管理员登录密码,结果就导致了整个sharepoint服务器场不能使用的悲惨后果:服务器场不能使用后,我的首要想法是能否把密码改回来,结果是域用户,密码有历史要求,不能修改为原来的密码,其次是能否把sharepoint服务器场的密码修改一下:有了这两种思路就开始了着手进行

故障现象:Win7 访问共享时输入正确密码仍然提示密码错误,此帐号在其它机器上可以正常使用,排除帐号密码不对导致的问题。

解决方案一 安装win7的机器日期不对,调整后故障排除. 解决方案二 1.直接按下win+r键,输入secpol.msc,打开本地安全策略.2.找到"安全设置"的"本地策略"的"安全选项"3.在右边一栏找到"网络安全:LAN管理器身份验证级别",双击进入4.在默认状态选项下,英文版应该为"no defined",中文版为空.下拉那个默认选项,选择"仅发送NTLM响应"重启后故障排除. 故

不知道帐号密码的情况下完全重装Mac Min的OS X10.7系统

现状: 1.原系统OS X 10.7 2.老账号不知道密码 3.Mac小盒子 目的: 1.删除老账号 2.更新系统到10.9以上 尝试过程1: 1.按住option键 + 开机 2.选择“磁盘工具” 3.选择当前系统磁盘 4.选择“抹掉”整个磁盘(因为之前系统没什么东西) 5.弹出错误“磁盘抹掉失败:未能卸载磁盘”(因为当前在修复模式,需要使用优盘或者光盘进入修复模式才行) 尝试过程2:(从1.2开始) 1.选择当前系统磁盘的分区 2.“抹掉”:(则所有数据和系统都没了,此时可以重新安装全新系统

Windows Server 2012 R2中通过IIS实现AD帐号密码修改功能

现在越来越多的企业会对AD帐号进行分类,例如将业务帐号.服务帐号同员工帐号分开管理,那么这类帐号也会因为业务应用特定类型而选择是否开启邮箱功能,再或者有些企业会采用腾讯企业邮箱或网易企业邮箱等等,这些平台本身同AD域是独立的,而且很多企业又使用MAC系统或计算机根本不加域,这时企业内网要搭建OA.WIKI.JIRA等一些需要调用AD中的LDAP让员工登录的系统时,则面临后期密码到期后用户没有入口去修改密码的问题.那么在今天我就要给大家介绍的是如何利用Windows Server 2012 R2中