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