• 用Cookie记住上次登录用户名


    一个登录页面设置查看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);
    	}
    
    }
    
  • 相关阅读:
    BZOJ3672/UOJ7 [Noi2014]购票
    POJ3718 Facer's Chocolate Dream
    BZOJ1453:[WC]Dface双面棋盘
    BZOJ2957:楼房重建
    AtCoder Grand Contest 009 D:Uninity
    BZOJ2877:[NOI2012]魔幻棋盘
    BZOJ3065:带插入区间K小值
    BZOJ3489:A simple rmq problem
    浅谈主席树
    AtCoder Regular Contest 080 E:Young Maids
  • 原文地址:https://www.cnblogs.com/lzzhuany/p/4702027.html
Copyright © 2020-2023  润新知