2011-10-27 13 views
1

春のMVCで期限切れになったセッションを処理するにはどうすればよいですか?どこでセッションのタイムアウトを指定できますか?あなたが私をいくつかの例で示すことができればそれは素晴らしいことでしょう。春MVCでセッションの有効期限が切れた

答えて

0

私は 'plain' Servlet APIを使ってセッションをタイムアウトしています。

カスタムjavax.servlet.http.HttpSessionListenerがweb.xmlで定義され、sessionCreatedのセッション設定タイムアウトがsetMaxInactiveInterval([s])で定義されています。

私はそれが「古い学校」だと知っていますが、私にとっては単純で働いています。

春からタイムアウト値を取得する場合は、セッションからServletContextにアクセスできます。

ApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(session.getServletContext()); 
applicationContext.getBean("..."); 
+0

アレクックス、あなたの答えに感謝します。私はコントローラークラスのどこでそれをチェックすべきか知りたいと思っていました。それを処理するための別のクラスまたはメソッドを記述する必要があります。また、セッションをチェックする最良の方法は何ですか? – user965884

+0

私の回答は、アプリケーションコードで独自のセッションタイムアウトを設定することでした。 セッションの状態を確認できるかどうかは不明です。セッションはコンテナ(Tomcatなど)で管理されます。セッションが期限切れになると、セッションは無効になります。セッションが有効かどうかだけを確認できます。このためには、Filter [Servlet way]またはSpringインターセプタ 'org.springframework.web.servlet.HandlerInterceptor' [Spring MVCの方法]が必要です。 – alephx

0

一つの選択肢はevent mechanism in ApplicationContextを使用することで、あなたはその後、セッションタイムアウトは、そのイベントを観測し、すべてのBeanにルートWebApplicationContextでイベントを起動するときというのweb.xmlでのHttpSessionListenerを登録します。 WebApplicationContextUtilsを使用してルートWebApplicationContextを取得します。

関連する問題