0

を拡張するSessionリスナーがありますPortalSessionListener。私はsessionCreated(HttpSessionEvent httpSessionEvent)sessionDestroyed(HttpSessionEvent httpSessionEvent)メソッドを持っています

無効にSessionなると (web.xml の構成に従って 15 分後)、リスナーが呼び出されてSession無効になります。

私のリスナーではCookie、ユーザーをログアウトする前に値をクリアしたいと考えています。そのため、Cookie の値を消去して に設定できるようにオブジェクトがRequest必要です。ResponseResponse

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それを私のシナリオにどのように適用できますか?

4

1 に答える 1

4

これは実現するかもしれません:

RequestContextHolder にアクセスして値を取得できます

文字列 ipAddr = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()) .getRequest().getRemoteAddr();

ここに掲載

于 2013-01-17T09:04:05.550 に答える