Servlet中cookie记住密码
Servlet中通过学到的Cookie,做出一个记住密码的操作
用到HTML+Servlet+Cookie+JavaScript
利用cookie设置记住密码的时间,到期失效.setMaxAge()–cookie设置时间. addCookie()–添加cookie
jsp页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>login</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<script type="text/javascript">
/** * 记住密码操作 * @type {string[]} */
//通过js获取cookie 用split方法分割“;”
//第一次分割得到cookies数组{username=111,password=111,remb=1}
var cookies = document.cookie.split(";");
//封装一个函数
function findCookie(Kname){
//迭代cookies
for (var i=0;i<cookies.length;i++){
//二次分割得到键值对 k,v {username,111}
var kv = cookies[i].split("=");
//判定是否有一样的,如果有返回kv[1]值
if(Kname==kv[0].trim()){
return kv[1].trim();
}
}
return '';
}
window.onload = function(){
//根据用户名
var username = findCookie("username");//这里的参数要和servlet创建的参数值的对象名一致
var password = findCookie("password");
var remb = findCookie("remb");
//点击了记住密码就给输入框赋值
if('1'==remb){
document.getElementById("username").value = username;
document.getElementById("pwd").value = password;
document.getElementById("remb").checked = "checked";
}
}
</script>
</head>
<body>
<form action="login" method="post">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td valign="middle" align="right">
username:
</td>
<td valign="middle" align="left">
<input type="text" name="username" id="username" />
</td>
</tr>
<tr>
<td valign="middle" align="right">
password:
</td>
<td valign="middle" align="left">
<input type="password" name="pwd" id="pwd" />
</td>
</tr>
<tr>
<td valign="middle" align="right"></td>
<td valign="middle" align="left">
<input type="checkbox" name="remb" value="1" id="remb" />记住密码
</td>
</tr>
</table>
<p>
<input type="submit" value="Submit »" />
</p>
</form>
</body>
</html>
serlvet
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
//设置请求的编码
//设置响应的格式和编码
//获取请求参数值
//用户名
String username = request.getParameter("username");
//密码
String password = request.getParameter("pwd");
//记住密码的值
String remb = request.getParameter("remb");
//查询数据库,进行dao操作,判定当前输入是否有对应用户存在
UserDao dao = new UserDaoImpl(); //创建dao对象
User u = dao.login(username,password); //调用dao里的login()方法
//用户如果为空,表示数据库不存在此用户,则登录失败
if(u != null){
//调用cookie记住密码方法
rem_pwd(response,username,password,remb);
response.getWriter().println("登录成功");
} else {
response.getWriter().println("登录失败");
}
}
/** * cookie封装记住密码 * @param response * @param username * @param password * @param remb */
private void rem_pwd(HttpServletResponse response,String username,String password,String remb){
//判断登录时是否点击了记住密码
if ("1".equals(remb)){
//构建用户名,密码记住密码三个Cookie
Cookie c1 = new Cookie("username",username);
Cookie c2 = new Cookie("password",password);
Cookie c3 = new Cookie("remb",remb);
//设置cookie的存活时间一个小时
c1.setMaxAge(60*60);
c2.setMaxAge(60*60);
c3.setMaxAge(60*60);
//添加cookie
response.addCookie(c1);
response.addCookie(c2);
response.addCookie(c3);
}
}
}
还没有评论,来说两句吧...