用JSP/Java在数据库中存储用户活动

用JSP/Java在数据库中存储用户活动,jsp,login,admin,logout,Jsp,Login,Admin,Logout,我目前正在用JSP进行一个项目。如何在数据库中存储用户登录和注销时间以及当前联机用户数?另外,我想以管理员身份而不是用户身份对此进行检查?您必须创建一个表,类似于日志事件(id、事件类型、时间),并在发生登录和注销事件时将其存储在该表中 如何在数据库中存储用户登录和注销时间以及当前联机用户数 下面是一个简单的示例,用于跟踪web应用程序中活动会话的总数。如果您想监视会话的创建和删除行为,则考虑此侦听器。 示例代码: import javax.servlet.http.HttpSessionEve

我目前正在用JSP进行一个项目。如何在数据库中存储用户登录和注销时间以及当前联机用户数?另外,我想以管理员身份而不是用户身份对此进行检查?

您必须创建一个表,
类似于日志事件(id、事件类型、时间)
,并在发生登录和注销事件时将其存储在该表中

如何在数据库中存储用户登录和注销时间以及当前联机用户数

下面是一个简单的示例,用于跟踪web应用程序中活动会话的总数。如果您想监视会话的创建和删除行为,则考虑此侦听器。

示例代码:

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
 
public class SessionCounterListener implements HttpSessionListener {
 
  private static int totalActiveSessions;
 
  public static int getTotalActiveSession(){
    return totalActiveSessions;
  }
 
  @Override
  public void sessionCreated(HttpSessionEvent arg0) {
    totalActiveSessions++;
    System.out.println("sessionCreated - add one session into counter");
    // database call to log the log in event of the user with current time
  }
 
  @Override
  public void sessionDestroyed(HttpSessionEvent arg0) {
    totalActiveSessions--;
    System.out.println("sessionDestroyed - deduct one session from counter");
    // database call to log the log out event of the user with current time
  } 
}
HttpSession session = request.getSession(); //sessionCreated() is executed
...
session.invalidate();  //sessionDestroyed() is executed
web.xml

<web-app ...>
    <listener>
        <listener-class>com.x.y.z.SessionCounterListener</listener-class>
    </listener>
</web-app>

有关更多信息,请访问此示例的引用位置。

如何将其存储为管理员以跟踪用户?请确保将此表中的记录显示给管理员,而不是其他人。至于插入记录,只要您成功登录或注销,将相应的事件存储在表中。因此,为了让我看到这一点,我在数据库中创建了一个单独的表,或者在同一个数据库中使用用户名和密码等登录信息查看它?现在您拥有了完全的控制权,可以在其中捕获用户登录和注销事件。只需将它与用户名或任何唯一id以及当前时间一起记录在数据库中。哦,非常感谢,只有在我实现它之后,我才能完全理解它。那么,我应该在bean中编写上述代码,并在登录时调用bean吗?对不起,我没有得到它。写一个豆子,为什么?它不是一个普通的POJO类。该类由容器自动调用。您不需要手动调用它。您必须告诉容器这是我的侦听器,并在我的应用程序中发生此类活动时调用它,这是通过在
web.xml
中定义它来完成的,如我的帖子所示。确定根据您的速度和应用程序设计来执行。但是你能解释一下登录时调用bean是什么意思吗?