【发布时间】:2020-04-23 16:13:24
【问题描述】:
当用户注销后再次登录时,我想在用户的个人资料页面上显示上次访问时间。我正在使用 HttpSession。 我有三个 servlet
- 登录
- 退出
- 简介
我应该在哪里使用long lastTime = session.getLastAccessedTime();
代码如下:
登录
String name = request.getParameter("name");
String password = request.getParameter("password");
if (password.equals("admin123")) {
out.print("Welcome, " + name);
HttpSession session = request.getSession();
session.setAttribute("name", name);
} else {
out.print("Sorry, username or password error!");
request.getRequestDispatcher("login.html").include(request, response);
}
退出
HttpSession session = request.getSession();
session.invalidate();
out.print("You are successfully logged out!");
个人资料
HttpSession session = request.getSession(false);
if (session != null) {
String name = (String) session.getAttribute("name");
long lastTime = session.getLastAccessedTime();
out.print(lastTime + "last login time");
out.print("Hello, " + name + " Welcome to Profile");
【问题讨论】:
-
session.getLastAccessedTime()与身份验证没有任何关系。这是最后一次使用JSESSIONID={sessionId}请求的时间。 docs.oracle.com/javaee/5/api/javax/servlet/http/… -
那我怎样才能得到用户的最后登录时间。请告诉我。
-
你需要自己实现这个功能。在您的
User对象上添加lastAuthenticatedOn属性并在身份验证结束时对其进行更新。
标签: java servlets httpsession