我有一个Session
监听器,扩展了PortalSessionListener
。我有sessionCreated(HttpSessionEvent httpSessionEvent)
和sessionDestroyed(HttpSessionEvent httpSessionEvent)
方法
当我的Session
失效时(根据我在web.xml中的配置15分钟后),我的监听器被调用,Session
无效。
在我的监听器中,我希望在注销用户之前清除Cookie
值。所以,我想要Request
和Response
个对象,以便我可以清除Cookie值并在Response
中设置它。
但是,我怎样才能在Request / Response
的听众中获得HttpSessionEvent
个对象?
我试过下面的代码。但是,当调用我的sessionDestroyed
方法或任何其他阶段时,不会调用此方法。
public void requestInitialized(ServletRequestEvent servletRequestEvent)
{
log.debug("Entered into requestInitialized method");
HttpServletRequest request = (HttpServletRequest) servletRequestEvent.getServletRequest();
log.debug("Request object created is :" +request);
}
有人建议实现Filter
符合此要求(获取Request
对象)。如何将其应用于我的场景?
答案 0 :(得分:4)
这可能是相关的:
您可以访问RequestContextHolder并获取值
String ipAddr = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()) 。.getRequest()的getRemoteAddr();