我正在做一个电子商务网站,我很难确定一个用户是积极登录,以便购物车购买可以直接在该用户。
在EclipseIDE中使用Java,“HttpSessionsession = request.getSession();”是启动会话的方式。我不知道如何确认它实际上已经开始。我已经尝试了在JavaScript中获取session属性的函数(如果session已经启动),如果成功,登录按钮应该更改为注销,但每次运行都没有区别。我试图从session属性中提取登录电子邮件,以便可以在JavaScript中进行购买并将其发送回JavaServlet。
Java Servlet:
//begin session
HttpSession session = request.getSession();
//session storage attributes
session.setAttribute("loggedInUser", true);
session.setAttribute("user", email);
session.setAttribute("price", price);
session.setAttribute("points", points);
session.setAttribute("item", item);
JavaScript:
//If user is logged in
function checkLoggedIn()
{
if (sessionStorage.getItem('loggedInUser') === 'true')
{
// User is logged in, change sign-in link to log-out link
document.getElementById('signin-link').textContent = 'Log Out';
}
else
{
document.getElementById('signin-link').textContent = 'Sign In';
}
}
1条答案
按热度按时间u0njafvf1#
你真的应该使用像Thymeleaf或JSP这样的东西来简化它。
可以使用纯Servlet,如下所示:
在Java中修改登录调用的servlet响应,以返回一个值,指示会话是否正确登录。就像这样:
在此呼叫上使用200表示成功登录,使用400表示失败。
使用此响应填充会话存储:
要使用Servlet/JSP实现这一点,请按原样使用Servlet。在JSP中,使用嵌入式Java〈%=%〉在JavaScript中设置值,如下所示: