我有一個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. 讓我登錄JSP頁面
- 4. 如何在business-catalyst登錄頁面中記住我的按鈕?
- 5. GWT:登錄記住我
- 6. symfony2登錄記住我
- 7. 記住我登錄形式
- 8. Railscast登錄記住我
- 9. 記住我登錄Cookie
- 10. ASP.NET MVC新手 - 默認登錄頁面記住我複選框
- 11. JSP登錄頁面錯誤
- 12. 登錄,記住我,使用java servlet和jsp的應用程序
- 13. JSP:登錄頁面到servlet登錄頁面消息傳遞
- 14. 記住登錄WordPress密碼保護頁
- 15. 記住我自動登錄與JSF + JAAS
- 16. Android登錄記住我複選框
- 17. 登錄表單中的「記住我」webmatrix
- 18. 記住我與會話登錄
- 19. Symfony2 ajax登錄記住我的功能
- 20. Spring Security使用Ajax登錄記住我
- 21. cakephp 2記住我自動登錄
- 22. 記住我的登錄形式
- 23. asp.net登錄控制 - 記住我
- 24. 登錄時記住我的功能
- 25. 如何保持django登錄頁面不記住憑據
- 26. AngularJS:重定向到登錄頁面,但記住初始位置?
- 27. JSP登錄2頁
- 28. 記住登錄信息
- 29. 記住使用OmniAuth登錄
- 30. Django,記住用戶登錄
謝謝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