利用Cookie实现记住用户名的功能

这里我们是在servlet中实现的,客户端也是servlet
下面客户端,我们有一个简单的登陆界面。
我们会在登陆一次后接收到服务器端传来的cookie。

public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        String v = "";
        String checked = "";
        Cookie[] cks = request.getCookies();
        if(cks!=null)
        {
            for(int i=0;iif("uName".equals(cks[i].getName())){
                    v = cks[i].getValue();
                    checked="checked=checked";
                }
            }
        }

        out.println("
"); out.println("用户名:"); out.println("密码:"); out.println("记住用户名:+checked+">"); out.println(""); out.println(""); }

下面我们在看一下服务器端是如何实现的
我们接收到客户端传过来的数据,然后为用户名穿件cookie,但是其生命周期我们需要看其是否选择了记住用户名。
当用户选择了记住用户名那么我们就将cookie的存活时间蛇者为最大,否则设置为立即销毁。

    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("username");
        String pass = request.getParameter("pwd");
        String rem = request.getParameter("rem");

        Cookie cookie = new Cookie("uName",name);
        cookie.setPath(request.getContextPath());
        if("admin".equals(name) && "123".equals(pass))
        {
            //复选框被选中
            if(rem!=null){
                cookie.setMaxAge(Integer.MAX_VALUE);
            }
            else
                cookie.setMaxAge(0);

            response.addCookie(cookie);
            out.println("

登陆成功

"); } else { out.println("用户名或密码错误,3秒后回到登陆页面"); response.setHeader("refresh", "3;url='"+request.getContextPath()+"/servlet/login'"); } }

你可能感兴趣的:(javaEE)