2011-02-10 8 views
4

どのようにセッションタイムアウトの時間をJava EEで定義できますか?私はweb.xmlやHttpSession.setMaxInactiveInterval()でセッションタイムアウトを設定するなどの明白な方法を超えて考えています。Java EEのセッションタイムアウト

現在、Java EEアプリケーションをレビューしていますが、セッションタイムアウト定義に関連するものは見つかりません。 WebアプリケーションはWeblogicにあります。私はセッションタイムアウトの定義がないので、セッションは期限切れにならないと仮定しています。

答えて

4

セッションは、WebLogicでタイムアウトすることができる方法を探しているように、私はweblogic.xml

TimeoutSecsを追加したり、セッションをログアウト時にsession.invalidate()によって殺されたコード内の任意の点を確認することができます。

ところで、それは無限ではありません。 WebLogicで

は、(値が指定されていない場合)we​​b.xmlのデフォルトは、defaults to 3600 secs、すなわち60分

+0

3600秒== 30分??? – cwash

+0

@cwash:それはしばらくの間、検出されなかった?ありがとう – JoseK

+0

長い一日の終わりに向かって、私は自分の心を失っていると思った。 :) – cwash

1

は関連SPRINGない:

  • コントロールcookie自分をresponse.setHeader("Set-Cookie", cookiestring);で。セッションタイムアウトを制御するのはexpires属性です。これは、すべてのservletcontainerまたはweb.xmlのデフォルトをオーバーライドしますが、とにかくJavaコードでHttpSession#setMaxInactiveInterval()によってオーバーライドできます。

  • servletcontainerレベルでデフォルトを設定します。例えばTomcatでは、maxInactiveIntervalの属性は<manager>の要素です。これは、とにかにでweb.xmlHttpSession#setMaxInactiveInterval()でオーバーライド可能です。


コメントや質問更新ごとのように更新:指定されていない場合は

、その後、servletcontainer管理のデフォルトのタイムアウトが使用されます。これは通常30分です(これはTomcatとクローンに当てはまります)。この方法では、セッションは、セッションでクライアントから最後に要求されてから30分後に期限切れになります。また、クライアントがブラウザのインス​​タンスを閉じて再オープンしたりクッキーを消去したりすると、新しいセッションが作成されます(デフォルトセッションは30分後に期限切れになります)。

+0

サーバタイムアウトは、クライアントのタイムアウトは異なるweblogic.xmlのTimeoutSecs値を使用することです。または、私は質問を受け取りませんでした:-) – Bozho

+0

@Bozho:セッションがサーバー上でタイムアウトした場合、クライアントは同じセッションにアクセスできなくなります。逆も同様です。 – BalusC

+0

コードを確認しています。私はクッキーもチェックしましたが、 "expires"属性はありません。使用されるアプリケーションサーバーはWeblogicです。 – atas