首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在jsp登录页面中记住我

在jsp登录页面中记住我
EN

Stack Overflow用户
提问于 2012-03-20 18:44:33
回答 4查看 20.3K关注 0票数 2

我有一个login screen,我正在通过检查数据库中的凭据来验证用户。但是我如何实现Remember me check box呢?就像在gmail中一样,remember me(stay signed in)是存在的。我使用sign.jspAuth servlet (doPost)oracle 10g ee进行身份验证。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-20 18:47:58

您可以使用cookies来实现此目的。

在servlet响应处理程序(doPost、doGet等)中通过以下方式创建cookie -

代码语言:javascript
运行
复制
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
}

要阅读它们,您可以使用类似于以下内容-

代码语言:javascript
运行
复制
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;
    }
}  

HereCookie类的官方文档。

票数 7
EN

Stack Overflow用户

发布于 2012-03-20 18:52:56

您可以使用cookies来帮助实现。就像这样。

代码语言:javascript
运行
复制
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);

然后稍后对照特定值进行检查。

票数 0
EN

Stack Overflow用户

发布于 2017-04-13 22:05:15

我不知道它是否安全,但这就是我所做的。

在login.jsp head标签中

代码语言:javascript
运行
复制
<script type="text/javascript">
var isLoggedIn = "${isLoggedIn}";
if(isLoggedIn === true)
 window.location.href="Home.jsp";
</script>

在body标签中,我添加了一个复选框来记住我,如下所示

代码语言:javascript
运行
复制
<input type="checkbox" id="RememberMe" name="rememberMe">
<label for="RememberMe">Remember Me</label>

在servlet doPost方法中,我添加了以下代码

代码语言:javascript
运行
复制
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);
            }

使用此功能,它将在第一次登录时要求提供凭据,并将登录信息存储在会话参数中,如果您尝试第二次访问该站点,它将自动转到"Home.jsp“而不是"login.jsp”

请评论这种方法是否是好的做法,任何其他修改都可以做。欢迎提出建议。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9785254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档