第一步:写一个jsp页面,制作登陆页面的表格。如果coolie中已经保存了用户名和密码信息,可以不用输入,直接再登陆页面直接显示出来。
<h1>登陆页面</h1>
<hr>
<%
String username = "";
String password = "";
Cookie[] cookies = request.getCookies();
for (Cookie c : cookies) {
if (c.getName().equals("username")) {
username = URLDecoder.decode(c.getValue(), "utf-8");
}
if (c.getName().equals("password")) {
password = URLDecoder.decode(c.getValue(), "utf-8");
}
}
%>
<form action="doLogin.jsp" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username" value="<%=username%>"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password"
value="<%=password%>"></td>
</tr>
<tr>
<td><input type="checkbox" name="remember" checked="checked"
value="true">是否记住账号密码</td>
</tr>
<tr>
<td><input type="submit" value="提交"></td>
</tr>
</table>
</form>
第二步:写一个处理提交表单信息的jsp页面,得到表单中的信息,如果勾选框勾中的话,将用户名和密码信息存放在新创建的cookie对象中,如果没有勾中的,将cookie中原来保存的信息也清除。
<h1>表单处理页面</h1>
<hr>
<%request.setCharacterEncoding("utf-8"); %>
<%
String username = request.getParameter("username");
String password = request.getParameter("password");
String isRemember = request.getParameter("remember");
if (isRemember != null) {
Cookie usernameCookie = new Cookie("username", URLEncoder.encode(username, "utf-8"));
Cookie passwordCookic = new Cookie("password", URLEncoder.encode(password, "utf-8"));
usernameCookie.setMaxAge(24 * 60 * 60);
passwordCookic.setMaxAge(24 * 60 * 60);
response.addCookie(usernameCookie);
response.addCookie(passwordCookic);
} else {
Cookie[] cookies = request.getCookies();
for (Cookie c : cookies) {
if (c.getName().equals("username") || c.getName().equals("password")) {
c.setMaxAge(0);
}
response.addCookie(c);
}
}
%>
用户名:<%=username %>
<br>
密码:<%=password %>
<br>
<a href="test.jsp">点我测试cookie是否保存信息</a>
第三步:写一个测试jsp页面,看cookie对象是否创建,如果保存了信息的话,可以从这里页面中显示出来。
<h1>测试cookie是否保存页面</h1>
<hr>
<%
String username = "";
String password = "";
Cookie[] cookies = request.getCookies();
for (Cookie c : cookies) {
if (c.getName().equals("username")) {
username = URLDecoder.decode(c.getValue(), "utf-8");
}
if (c.getName().equals("password")) {
password = URLDecoder.decode(c.getValue(), "utf-8");
}
}
%>
用户名:<%=username%><br> 密码:<%=password%>