如何检查并使用userLoggedIn来证明条件。 我是新人,我有很多搜索。必须有一个愚蠢的错误。
的index.jsp
<div id="sign-in">
<c:choose>
<c:when test="${userLoggedIn == 1}">
Welcome <c:out value="${loginID}" /> | Logout
</c:when>
<c:otherwise>Log-in</c:otherwise>
</c:choose>
</div>
一些验证servlet
int userLoggedIn = 0;
if(loginID.equals("guest@guest.com") && password.equals("guest")){
userLoggedIn = 1;
getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
// out.println("login successful");
} else {
// getServletContext().getRequestDispatcher("/login.jsp").forward(request, response);
out.println("login failed");
}
答案 0 :(得分:7)
您需要将信息存储在所需的范围内,这通常是登录用户的会话范围。
在 userLoggedIn = 1;
之后添加以下行。
request.getSession().setAttribute("userLoggedIn", userLoggedIn);
这基本上只需要改变。
无关,这个int
(和BevynQ评论的boolean
)方法相当“原始”。您通常会在会话中存储从DB获取的整个User
实体。例如。
User user = userService.find(username, password);
if (user != null) {
request.getSession().setAttribute("user", user);
response.sendRedirect("home");
} else {
request.setAttribute("message", "Unknown login, please try again");
request.getRequestDispatcher("/WEB-INF/login.jsp").forward(request, response);
}
与
<c:when test="${not empty user}">
允许轻松访问其所有属性,如
<p>Welcome, <c:out value="${user.name}" /></p>