一个登录页面设置查看Cookie中的数据(Cookie不为null);然后将页面提交到另一个页面去,在这个页面中的到是否选择记住用户名,如果选择了,
就创建Cookie对象,将用户名存储起来,下次登录时,用户名直接显示在上面,注意:路径一定要一致,且都能访问。
登录页面
package com.itheima.cookie; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebInitParam; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.itheima.myConstant; //模拟登录时,记住用户名和密码 @WebServlet( urlPatterns = { "/CookieDemo2" }, initParams = { @WebInitParam(name = "CookieDemo2", value = "com.itheima.cookie.CookieDemo2") }) public class CookieDemo2 extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //读取记住的用户名 String name=""; String rem=""; Cookie[] cookies=request.getCookies(); for(int i=0;cookies!=null&&i<cookies.length;i++){ Cookie c=cookies[i]; if(myConstant.USER_NAME.equals(c.getName())){ //找到了 String value=c.getValue(); name=value; rem="checked='checked'"; } } //显示出登陆界面 response.setContentType("text/html;charset=utf-8"); PrintWriter out=response.getWriter(); out.println("<html>"); out.println("<head><title>用户登陆</title></head>"); out.println("<body>"); out.println("<form action='/CookieTest/CookieDemo3' method='post'>"); out.println("<table width='400' border='1'>"); out.println("<tr>"); out.println("<td>用户名</td>"); out.println("<td><input type='text' name='username' value="+name+"/></td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td>密码</td>"); out.println("<td><input type='password' name='password'/></td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td colspan='2'><input type='checkbox' name='remember'"+rem+"/>记住用户名</td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td colspan='2'><input type='submit' value='go'/></td>"); out.println("</tr>"); out.println("</table></form></body></html>"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } }
处理页面
package com.itheima.cookie; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebInitParam; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.itheima.myConstant; /** * 接收用户名和密码,验证是否是合法用户 *看用户是否选中了checkbox,如果选中,将数据写入Cookie */ @WebServlet( urlPatterns = { "/CookieDemo3" }, initParams = { @WebInitParam(name = "CookieDemo3", value = "com.itheima.cookie.CookieDemo3") }) public class CookieDemo3 extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String remember=request.getParameter("remember"); // System.out.println(remember);//选中输出on,不选中输出null(value的值) if(remember!=null){ //如果选中,把用户名写入Cookie Cookie c=new Cookie(myConstant.USER_NAME,request.getParameter("username")); c.setPath(request.getContextPath()); c.setMaxAge(Integer.MAX_VALUE);//永久保存 response.addCookie(c); } response.setContentType("text/html;charset=utf-8"); response.getWriter().write("登陆成功,这是主页"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } }