2013-12-17 139 views
1

如何在JSP頁面中使「保持登錄狀態」框?看起來它與cookie有關,對嗎?讓我登錄JSP頁面

以下是我的JSP代碼。

<%@ page contentType="text/html;charset=UTF-8" language="java" %> 
<html> 
<head> 
<title></title> 

</head> 
<body> 
${errorMessage} 
${successMessage} 
Please log in. 
<form action="login" method="post"> 
    <p> 
    <label> 
     id 
     <input type="text" name="id"/> 
    </label> 
    </p> 
    <p> 
    <label> 
     password 
     <input type="password" name="password"/> 
    </label> 
    </p> 
    <p> 
    <input type="submit" value="login"/> 
    </p> 
<-- I AM TRYING TO PUT KEEP ME LOGGIN BOX RIGHT HERE! --> 
</form> 
<a href="getpass.jsp">Forgot password?</a> 
<a href="register.jsp">Don't have an account?</a> 
</body> 
</html> 

我知道如何製作這個盒子,但我不知道該從哪裏出發。

我很感謝有人能幫助我。

回答

1

當你驗證你的用戶名和密碼時,你必須這樣做。

String value = request.getParameter("rememberMe"); 
boolean rememberMe = false; 
if(value != null && value.equalsIgnoreCase("on")){ 
    rememberMe = true; 
} 
if (rememberMe) {   //If your checkbox value is true 
Cookie cookieUsername = new Cookie("cookieLoginUser", username); 
Cookie cookiePassword = new Cookie("cookieLoginPassword", 
        password); 
// Make the cookie one year last 
cookieUsername.setMaxAge(60 * 60 * 24 * 365); 
cookiePassword.setMaxAge(60 * 60 * 24 * 365); 
servletResponse.addCookie(cookieUsername); 
servletResponse.addCookie(cookiePassword); 
} 

而在JSP頁面中,

<%Cookie[] cookies=request.getCookies(); 
String name="",pass=""; 
if (cookies != null) { 
    for (Cookie cookie : cookies) { 
     if (cookie.getName().equals("cookieLoginUser")) { 
      name=cookie.getValue(); 
     } 
     if(cookie.getName().equals("cookieLoginPassword")){ 
      pass=cookie.getValue(); 
     } 
    } 
} 
%> 

您可以使用此namepass你的目的。 更新 而在你的JSP

<input type="checkbox" name="rememberMe"> 
<label for="checkbox">Keep me logged in</label> 

希望這會幫助你。

+0

我把if(rememberMe)放在我的servlet中,對嗎? – user3014926

+0

是的你是對的。這需要在您成功記錄(在servlet內部)後完成。 –

+0

如果我有這樣的方框,請輸入type =「checkbox」>:我確實讓我的servlet知道該方框是否被選中?對於文本輸入,你只需要getParameter(「paraeterName」),那麼複選框呢? – user3014926