一尘不染

如何在sessionCreated方法中检索用户输入的数据

jsp

我有一个登录页面,要求输入用户名和密码。在单击登录按钮时,网页发送用户名和密码作为参数登录servlet(我正在使用tomcat)。然后,我正在使用创建会话request.getSession();

我有一个sessionListener类(实现HttpSessionListener),我在其中重写
sessionCreated()sessionDestroyed()方法。我还在web.xml文件中添加了侦听器条目。

我的问题是,我想访问sessionCreated()方法内部的用户名请求参数, 以便每次创建新会话时都可以将用户名写入mysql数据库。

基本上,有什么方法可以访问会话侦听器中用户输入的参数?请提出我该如何实现。


阅读 341

收藏
2020-06-10

共1个答案

一尘不染

感谢@sanbath帮助我。这是我遵循的完成方法。

我已经在servlet本身中添加了代码,以将登录的用户名插入数据库,因为我无法在sessionCreated()方法内部执行此操作(此时将
没有会话属性可用 )。

为了在会话无效时删除用户名,我只是从method的HttpSessionEvent参数中获取会话属性的详细信息sessionDestroyed()。由于用户名属性将可用,因此可以从数据库的已登录用户表中将其删除。

public void sessionDestroyed(HttpSessionEvent e) {
    System.out.println("session destroyed");
    System.out.println("username is "+e.getSession().getAttribute("user"));
}
2020-06-10