2012-09-11 85 views
0

我有一個Session聽衆,其延伸PortalSessionListener。我有sessionCreated(HttpSessionEvent httpSessionEvent)sessionDestroyed(HttpSessionEvent httpSessionEvent)方法從HttpSessionEvent獲取請求對象

當我Session被無效(後15分鐘,按我在web.xml配置),我的監聽器被調用和Session無效。

在我的聽衆中,我想在註銷用戶之前清除Cookie的值。因此,我想要RequestResponse對象,以便我可以清除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

FYI,PortalSessionListener我已上面器具HttpSessionListener提及。 –

+0

需要更多的信息嗎?或者根本不可能在HttpSessionListener中獲取請求對象? –

回答

4

這可能是realated:

您可以訪問RequestContextHolder並獲得價值

字符串IPADDR = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()) .getRequest()的getRemoteAddr(。 );

Posted here