我想从内部获取用户名HttpSessionListener.sessionCreated()
。当我说用户名时,我特指的是返回的名称HttpServletRequest.getRemoteUser()
.
显然,一定有一个HttpServletRequest
导致会话被创建的对象(因此sessionCreated()
称呼)。但我如何从内部访问它sessionCreated()
? The HttpSessionEvent
对象传入sessionCreated()
似乎没有提供途径HttpServletRequest
导致创建会话的对象。
HttpSessionListener 无法访问 HttpServletRequest 对象,因为它是在未发出请求时调用的,以通知会话销毁或创建。
因此,过滤器是更好的地方,您可以将 username = request.getRemoteUser() 添加到会话中。
示例 - 过滤器代码
String username = request.getRemoteUsr() ;
session.setAttribute("username",username);
然后在 sessionCreated 方法中检索此用户名
String username = (String)session.getAttribute("username");
我希望您能获得在 HttpSessionListener session Created() 方法中创建此会话的同一请求的相同用户名。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)