我使用Struts2框架。在jsp中,我在项目中显示了一个登录框,当用户单击登录按钮时,我将一个名为“loggedin”的cookie设置为一个操作类中的值为“true”的cookie。如何检查用户是否登录或不在Java EE中
然后返回“成功”将再次加载此登录页面。
在登录页面:
<body>
<%
Cookie cookie[] = request.getCookies();
for(c : cookie)
{
if(c.getName().equals("loggedin"))
{
if(!c.getValue().equals("true"))
{
%>
//show login form here.
<%
}//end inner if
else //if cookie "loggedin" value is "true"
{
%>
//show username/profile picture/logout button here
<%
}//end else
}//end outer if
}/end for loop
%>
</body>
我有一个问题。当我点击登录表单中的登录按钮时,会设置一个cookie并重新加载页面。但是,而不是一个用户名/个人资料图片,登录表单仍然显示,直到我手动重新加载页面。
- 我该如何解决这个问题?
- 我认为这不是检查登录或不是正确的方式。有人可以告诉我如何以另一种方式检查此问题吗?
与登录相比,您可能会考虑主动记录其他用户会话。难以跟踪登录信息,但设置“最后登录”以及cookie与身份验证匹配的散列是一种“简单”方法。 – 2013-04-04 01:20:27
这在多个层面上是错误的。最简单的方法是将某个会话值设置为某个事物(比如说,一个“用户”对象),以表明存在已登录的用户,然后检查是否存在该值。 **使用JSTL,而不是SCRIPTLETS。** – 2013-04-04 02:34:03
或Struts2标签和OGNL,而不是JSTL :) – 2013-04-04 09:35:13