Jsp使用Cookie完成记住账号密码的功能

网站中对于记住账号密码,方便下次登录的使用非常普遍,那么它是怎么实现的呢?

首先他的流程是,设计一个复选框,当选中复选框时,就会传值到处理页面,复选框的用途就是判断用户是否愿意记住账号密码。

我们通过一个小例子来掌握他的实现步骤,在开始之前首先要了解一下实现这一功能的关键:

Cookie,所有的实现所依赖的都是cookie,那么什么是Cookie呢?

简单来说:cookie就是一段文本,它存储在客户端(通常来说是浏览器)。你可以把cookie当作一个map,里边是键值对,每个键值对有 过期时间、域、路径、脚本可否访问等属

性;客户端请求时,默认会带上cookie信息,就在http请求报文的header中;服务器响应时,可以设置cookie信息,就在http响应报文的header中;

了解了Cookie,我们就可以实现记住账号密码的功能了

首先,我们写一个login.jsp,来接收用户的操作。

<body>
	<%
		String username = "";
		String password = "";
		Cookie[] c = request.getCookies();
		if (c != null) {
			for (int i = 0; i < c.length; i++) {
				if ("username".equals(c[i].getName())) {
					username = c[i].getValue();
				} else if ("password".equals(c[i].getName())) {
					password = c[i].getValue();
				}
			}
		} else {
			username = " ";
			password = " ";
		}
	%>
	<div id="qq">
		<form action="loginCheck.jsp" method="post">
			<table>
				<tr>
					<td><input type="text" name="username" value="<%=username%>" />
					</td>
				</tr>
				<tr>
					<td><input type="password" name="password"
						value="<%=password%>" />
					</td>
				</tr>
				<tr>
					<td>记住密码:<input type="checkbox" name="passcookies"
						value="jizhu" />
					</td>
					<td><input type="submit" value="登录" />
					</td>
				</tr>
			</table>
		</form>
	</div>
</body>

这段代码实现的思路是,首先搜索浏览器的Cookie,判断是否存在名为username和password,

如果有,就传值到form表单,用value="<%=username%>"来使他显示在输入框;而当搜索不到这套Cookie时,输入框不显示内容,需要用户手动输入。

这时我们需要一个登录信息处理的jsp,这里名字是loginCheck.jsp

<body>

	<%
		request.setCharacterEncoding("utf-8");
		LoginDaoImpl user = new LoginDaoImpl();
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String remember = request.getParameter("passcookies");
		if (!user.loginCheck(username, password)) {
			out.println("<script>alert('error');</script>");
		} else {
			if (remember != null) {
				Cookie c1 = new Cookie("username", username);
				Cookie c2 = new Cookie("password", password);
				c1.setMaxAge(1000);
				c2.setMaxAge(1000);//这里设置保存这条Cookie的时间
				response.addCookie(c1);//添加Cookie
				response.addCookie(c2);
				out.println("<script>alert('success and remember this username&password
');</script>");
			} else {
				out.println("<script>alert('success but not remember this username&password');</script>");
			}
		}
	%>
</body>

这里的实现思路是首先接收登录界面传过来的值,首先判断用户名密码是否存在,不存在程序就终止了,弹出error提示,如果存在再判断用户是否选择了记住密码,即复选框是否有传值过来。如果有,new一个Cookie对象,对Cookie进行保存,如果没有则正常登录。

主要介绍记住账号密码的功能,后台实现思路不做详细介绍,代码如下

public class LoginDaoImpl implements LoginDao {

	public boolean loginCheck(String username, String password) {
		boolean result = false;
		Connection conn = null;
		PreparedStatement state = null;
		ResultSet rs = null;
		try {
			conn = ConnHelper.getConn();
			String sql = "select username from userinfo where username=? and password=?";
			state = conn.prepareStatement(sql);
			state.setString(1, username);
			state.setString(2, password);
			rs = state.executeQuery();
			if (rs.next()) {
				result = true;
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			try {
				rs.close();
				state.close();
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}
		return result;
	}

}

这样,一个简单的使用Cookie记住账号密码的功能就实现了,同时可以扩展一下,比如,让用户自己选择记住账号密码的时长
表单中加上一个输入框:

<tr>
	<td>记住密码时间:<input type="text" name="time" value="100" /></td>
</tr>

登录处理用输入的时间代替原来设置的值:

<body>

	<%
		request.setCharacterEncoding("utf-8");
		LoginDaoImpl user = new LoginDaoImpl();
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String remember = request.getParameter("passcookies");
		int time = Integer.parseInt(request.getParameter("time"));
		if (!user.loginCheck(username, password)) {
			out.println("<script>alert('error');</script>");
		} else {
			if (remember != null) {
				Cookie c1 = new Cookie("username", username);
				Cookie c2 = new Cookie("password", password);
				c1.setMaxAge(time);
				c2.setMaxAge(time);
				response.addCookie(c1);//添加Cookie
				response.addCookie(c2);
				out.println("<script>alert('success and remember this username&password 记住密码时长="
						+ time + "');</script>");
			} else {
				out.println("<script>alert('success but not remember this username&password');</script>");
			}
		}
	%>
</body>

使用Cookie可以完成很多事情,怎么用它,就要发挥大家想象啦!

时间: 2024-11-02 13:28:35

Jsp使用Cookie完成记住账号密码的功能的相关文章

JavaScript使用cookie实现记住账号密码功能

  JavaScript使用cookie实现记住账号密码功能         这篇文章主要介绍了JavaScript使用cookie实现记住账号密码功能,本文直接给出完整测试代码,需要的朋友可以参考下 很多登录功能上都有个"记住密码"的功能,其实无非就是对cookie的读取. 下面展示这个功能的代码,原作者已无法考究.... 测试方法:直接输入账号密码,提交后,刷新页面,再输入同样的账号,就可以显示 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Android中使用SharedPreferences完成记住账号密码的功能

效果图: 记住密码后,再次登录就会出现账号密码,否则没有. 分析: SharedPreferences可将数据存储到本地的配置文件中 SharedPreferences会记录CheckBox的状态,如果CheckBox被选,则将配置文件中记录的账号密码信息回馈给账号密码控件,否则清空. SharedPreferences使用方法: 1.创建名为config的配置文件,并且私有 private SharedPreferences config; config=getSharedPreference

JavaScript使用cookie实现记住账号密码功能_javascript技巧

很多登录功能上都有个"记住密码"的功能,其实无非就是对cookie的读取. 下面展示这个功能的代码,原作者已无法考究.... 测试方法:直接输入账号密码,提交后,刷新页面,再输入同样的账号,就可以显示 <!DOCTYPE HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>

jquery cookie 与asp.net实现登录记住用户名密码

jquery实现cookie登录记住用户名密码问题,只需在页面写上相应js方法后台不用做任何处理,下次登录就能记住用户名和密码 先来介绍关于jquery读取cookie方法 example $.cookie('the_cookie', 'the_value'); 设置cookie的值 example $.cookie('the_cookie', 'the_value', {expires: 7, path: '/', domain: 'jquery.com', secure: true}); 新

JQuery记住用户名密码实现下次自动登录功能

  这篇文章主要介绍了JQuery记住用户名密码实现下次自动登录功能,本文直接给出实现代码,需要的朋友可以参考下 Jquery将用户名密码存储到cookie中 需要导入jquery.js和jquery.cookie.js ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 <html> <head> &l

密码管理公司 OneLogin 遭入侵,大量账号密码泄露

  据外媒报道,周三(5月31日)密码和身份访问管理公司 Onelogin 承认,公司遭遇了数据泄露,并且数据量不小. 数据泄露似乎不少见,但这家公司数据泄露,事情却不简单,因为他们的业务非常特殊. 密码和身份访问管理服务是什么?雷锋网先简单解释一下: 我们工作生活中有各种各样的账号密码,记不住,且容易输错.这时密码管理工具出现了,它可以帮你把所有账号密码记在软件里,有点像是把所有账号密码写在一个小本子上. 但是密码管理和小本子不完全一样,它还可以通过技术手段实现"单点登录".&quo

jsp 利用cookie 记住用户名和密码

<%...@page contentType="text/html; charset=GBK" language="java" import="java.sql.*" errorPage="" %><html><head><meta http-equiv="Content-Type" content="text/html; charset=GBK"

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

一.什么是Cookie cookie是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段.Cookie的目的就是为用户带来方便,为网站带来增值.虽然有着许多误传,事实上Cookie并不会造成严重的安全威胁.Cookie永远不会以任何方式执行,因此也不会带来病毒或攻击你的系统.另外,由于浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB,因此Cookie不会塞满你的硬盘. 例如,当我们第一次访问网站输入用户名密码时,可以选择让系统

JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍_javascript技巧

cookie是网站设计者放置在客户端(浏览器)的小文本文件,cookie不仅能够实现保存密码功能,还可以通过cookie保存最近浏览记录增加用户体验. 在登录界面添加记住密码功能,我首先想到的是在java后台中调用cookie存放账号密码,大致如下: HttpServletRequest request HttpServletResponse response Cookie username = new Cookie("username ","cookievalue"