我想从中获取用户名HttpSessionListener.sessionCreated()。当我说用户名时,我的意思是具体地由返回的名称HttpServletRequest.getRemoteUser()。
显然,必须有一个HttpServletRequest导致会话创建的对象(并因此导致了sessionCreated()调用)。但是如何从内部访问它sessionCreated()?HttpSessionEvent传递给的对象sessionCreated()似乎无法提供HttpServletRequest导致会话创建的对象的方法。
HttpSessionListener无权访问HttpServletRequest对象,因为在未发出任何请求时会调用该对象,以通知会话破坏或创建。
因此,在您可以将username = request.getRemoteUsr()添加到会话中的地方,最好使用Filter。
示例-过滤器代码
String username = request.getRemoteUsr() ;
session.setAttribute("username",username);
Run Code Online (Sandbox Code Playgroud)
然后在sessionCreated方法中检索该用户名
String username = (String)session.getAttribute("username");
Run Code Online (Sandbox Code Playgroud)
我希望您将获得与在HttpSessionListener sessionCreated()方法中创建此会话的请求相同的用户名。
| 归档时间: |
|
| 查看次数: |
5103 次 |
| 最近记录: |