我有一个登录页面,要求输入用户名和密码。在单击登录按钮时,网页发送用户名和密码作为参数登录servlet(我正在使用tomcat)。然后,我正在使用创建会话request.getSession();
request.getSession();
我有一个sessionListener类(实现HttpSessionListener),我在其中重写 sessionCreated()和sessionDestroyed()方法。我还在web.xml文件中添加了侦听器条目。
HttpSessionListener
sessionCreated()
sessionDestroyed()
我的问题是,我想访问sessionCreated()方法内部的用户名请求参数, 以便每次创建新会话时都可以将用户名写入mysql数据库。
基本上,有什么方法可以访问会话侦听器中用户输入的参数?请提出我该如何实现。
感谢@sanbath帮助我。这是我遵循的完成方法。
我已经在servlet本身中添加了代码,以将登录的用户名插入数据库,因为我无法在sessionCreated()方法内部执行此操作(此时将 没有会话属性可用 )。
为了在会话无效时删除用户名,我只是从method的HttpSessionEvent参数中获取会话属性的详细信息sessionDestroyed()。由于用户名属性将可用,因此可以从数据库的已登录用户表中将其删除。
HttpSessionEvent
public void sessionDestroyed(HttpSessionEvent e) { System.out.println("session destroyed"); System.out.println("username is "+e.getSession().getAttribute("user")); }