日期:2014-05-19  浏览次数:20568 次

用户登录怎样实现记住密码
很多网站的登录页面都有“记住登录状态”的选项,这个功能怎么实现啊?表示不懂,拜托给位高手指点迷津啦!

------解决方案--------------------
使用cookie可以保存的。一下是例子,仅供参考。
Java code

HttpServletRequest request = ServletActionContext.getRequest();
Cookie cookies[]=request.getCookies();
String login=null; 
String password=null; 
for (int i = 0; i < cookies.length; i++){   //取最后一次我保存的
    if(cookies[i].getName().equals("userName")){
             login = cookies[i].getValue();
     }
    if (cookies[i].getName().equals("password")){
         password = cookies[i].getValue();
         break;
    }
    }
    if(!AssertUtil.isEmpty(login)&&!login.equals("JSESSIONID")){
    request.setAttribute("login", login);
    request.setAttribute("password", password);
}

------解决方案--------------------
cookie
先在校验页面创建
HTML code

<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="org.xiong.demo.vo.*,org.xiong.demo.factory.*"%>
<%
    request.setCharacterEncoding("GBK");
    String rand = (String) session.getAttribute("rand");
    String userName = request.getParameter("username");
    String userPass = request.getParameter("password");
    String code = request.getParameter("code");
    long cookieTime = 0;
    try
    {
        cookieTime = Long.parseLong(request.getParameter("saveTime"));
    }
    catch (Exception ex)
    {

    }
%>
<%
    //判断用户名密码是否为空
    if (("".equals(userName) || null == userName)
            || ("".equals(userPass) || null == userPass))
    {
        request.setAttribute("errMsg", "用户名或密码不能为空!");
%>
<jsp:forward page="login.jsp" />
<%
    }
%>
<%
    //判断验证码是否正确
    if (!code.equalsIgnoreCase(rand))
    {
        request.setAttribute("errMsg", "输入的验证码不正确");
%>
<jsp:forward page="login.jsp" />
<%
    }
%>
<%
    RegisterUser user = new RegisterUser();
    user.setUsername(userName);
    user.setPassword(userPass);
    boolean flag = false;
    if (DaoFactory.getUserDaoInstance().findLongin(user))
    {

        session.setAttribute("username", userName);
        Cookie c1 = new Cookie("username", userName);
        Cookie c2 = new Cookie("password", userPass);
        c1.setMaxAge((int) cookieTime);
        c2.setMaxAge((int) cookieTime);
        response.addCookie(c1);
        response.addCookie(c1);
        flag = true;
    }
    else
    {
        request.setAttribute("errMsg", "用户名或密码不正确!");
    }
%>
<%
    if (flag)
    {
%>
<jsp:forward page="welcome.jsp" />
<%
    }
    else
    {
%>
<jsp:forward page="login.jsp" />
<%
    }
%>