我有一個login screen
,我通過檢查數據庫的憑據來驗證用戶。但是我怎麼能實現Remember me check box
?像gmail remember me(stay signed in)
一樣存在。我正在使用sign.jsp
和Auth servlet (doPost)
和oracle 10g ee
進行身份驗證。記住我在jsp登錄頁面
2
A
回答
5
您可以使用cookies
來實現此目的。
在你的servlet響應處理器(doPost方法,的doGet等),創建以下列方式餅乾 -
if(remember_me_is_checked)
{
Cookie c = new Cookie("userid", userId.toString());
c.setMaxAge(24*60*60);
response.addCookie(c); // response is an instance of type HttpServletReponse
}
讀他們,你可以使用這樣的事情 -
Cookie[] cookies = request.getCookies(); // request is an instance of type
//HttpServletRequest
boolean foundCookie = false;
for(int i = 0; i < cookies.length; i++)
{
Cookie c = cookies[i];
if (c.getName().equals("userid"))
{
string userId= c.getValue();
foundCookie = true;
}
}
Here是Cookie
類的官方文檔。
0
您可以使用cookie來幫助您實施。像這樣的東西。
String userIdendificationKey="UserName";
Cookie cookie = new Cookie ("userIdendificationKey",userIdendificationKey);
// Set the age of the cokkie
cookie.setMaxAge(365 * 24 * 60 * 60);
//Then add the cookies to the response
response.addCookie(cookie);
,然後檢查針對特定值更高版本。
-2
0
我不知道它是否安全,但這是我做的。
在login.jsp的頭標記
<script type="text/javascript">
var isLoggedIn = "${isLoggedIn}";
if(isLoggedIn === true)
window.location.href="Home.jsp";
</script>
在身體標記
我增加一個複選框記住如下
<input type="checkbox" id="RememberMe" name="rememberMe">
<label for="RememberMe">Remember Me</label>
在servlet的doPost方法我加入下面
if(userdetails are verified)
{
if(request.getParameter("rememberMe")!=null){
request.getSession().setAttribute("isLoggedIn", true);
}
RequestDispatcher rs = request.getRequestDispatcher("Home.jsp");
rs.forward(request, response);
}
else
{
RequestDispatcher rs = request.getRequestDispatcher("fail.jsp");
rs.include(request, response);
}
代碼
使用它它會在第一次登錄時要求提供憑據,並且它會將登錄信息存儲在sessi中在參數上,如果您嘗試第二次訪問該站點,它將自動轉到「Home.jsp」而不是「login.jsp」
請評論此方法是否良好,可以進行其他任何修改。 歡迎提出建議。
相關問題
- 1. 記住我/保持登錄狀態,在jsp登錄頁面
- 2. 記住我登錄頁面的功能
- 3. GWT:登錄記住我
- 4. Railscast登錄記住我
- 5. symfony2登錄記住我
- 6. 記住我登錄形式
- 7. ASP.NET MVC新手 - 默認登錄頁面記住我複選框
- 8. JSP登錄頁面錯誤
- 9. 記住登錄WordPress密碼保護頁
- 10. 記住我的登錄形式
- 11. 登錄時記住我的功能
- 12. 記住我自動登錄與JSF + JAAS
- 13. Spring Security使用Ajax登錄記住我
- 14. 登錄表單中的「記住我」webmatrix
- 15. asp.net登錄控制 - 記住我
- 16. cakephp 2記住我自動登錄
- 17. 使用jsp創建登錄頁面
- 18. Liferay 6:Liferay登錄頁面JSP名稱
- 19. JSP和角度js登錄頁面
- 20. Django,記住用戶登錄
- 21. 如何實現本地和遠程登錄頁面的「記住我」功能?
- 22. 使用python請求登錄到jsp登錄頁面
- 23. 防止用戶登錄後返回登錄頁面jsp servlet
- 24. 設置在ajax上記住laravel登錄
- 25. cakephp:登錄鏈接不會把我帶到登錄頁面,而是它帶我登錄我的登錄頁面
- 26. 如何從JSP頁面返回index.html(登錄頁面)?
- 27. JSP/JSTL如何重用我的login.jsp登錄錯誤頁面
- 28. 根據登錄用戶將JSP頁面重定向到另一個JSP頁面
- 29. 網頁在下次登錄時如何記住您?
- 30. JSP頁面能記住它的舊對象嗎?
謝謝Sayem您的迴應,但請你稍微詳細說明我該如何實現這個'cookie'來保持登錄狀態? – Tom 2012-03-20 10:49:20
引用此鏈接,這在JS中,但看到背後的邏輯http://www.roseindia.net/jsf/RememberMeLogin.shtml – 2012-03-20 10:52:50
@RakeshPatel是一個有用的,但如果我將從瀏覽器中刪除cookie,那麼也許我必須再次選中該複選框以實現'保持登錄狀態' – Tom 2012-03-20 10:56:19