用Cookie实现登录功能并记住登录名,用一个复选框,如果用户名和密码都正确并且复选框被选中了就记住用户名
先写一个loginservlet
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
String v = "";
String check = "";
Cookie[] cookies = request.getCookies();
if (cookies!=null) {
for (int i = 0; i < cookies.length; i++) {
if ("uName".equals(cookies[i].getName())) {
v=cookies[i].getValue();
check="checked=checked";
}
}
}
out.println("<form action='/9-13-cookie_session/servlet/dologin' method='post'>");
out.println("登录名:<input type='text' name='name' value='"+v+"'/>");
out.println("密码:<input type='password' name='pwd'/>");
out.println("记住登录名:<input type='checkbox' name='rem' "+check+"/>");
out.println("<input type='submit' value='登录'/>");
out.println("</form>");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
再写处理登录功能和记住登录名的dologin
public class DoLogin extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String name = request.getParameter("name");
String pwd = request.getParameter("pwd");
String rem = request.getParameter("rem");
Cookie cookie = new Cookie("uName", name);
cookie.setPath(request.getContextPath());
//先判断用户名和密码是否正确
if("admin".equals(name) && "123".equals(pwd)){
//如果用户名密码都正确就判断复选框是否被选中
if (rem!=null) {
//如果选中了就记住这个用户名,也就是把cookie的生命时间设置的很大
cookie.setMaxAge(Integer.MAX_VALUE);
}
else{
cookie.setMaxAge(0);
}
response.addCookie(cookie);
out.println("<h2>登录成功!</h2>");
}
else{
out.println("登录失败!3秒后跳转回登录页面");
response.setHeader("refresh", "3;url='"+request.getContextPath()+"/servlet/login");
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}