VwpFAQHttpSessionMgmtJa

NetBeans Visual Web Pack でのセッション (HttpSession) の管理方法を教えてください。

NetBeans Visual Web Pack によって標準 Java Web アプリケーションが作成されます。 これは、サーブレット API によってサポートされる通常の機能 (セッションタイムアウト管理を含む) がすべて存在することを意味します。また、IDE もこの機能をサポートします。


デフォルトのセッションタイムアウト (30 分) を全体的に変更するには、次の手順に従います。

次の要素を web.xml ファイルに追加します。エラーサーブレットの <servlet-mapping> のあとで <welcome-file-list> の前に追加します。

      <session-config>
         <!-- デフォルトのセッションタイムアウトを 60 分に設定 -->
         <session-timeout> 60 </session-timeout>
      </session-config>

デフォルトのセッションタイムアウトは、IDE からでも変更できます。

  1. 「ファイル」ウィンドウで、<プロジェクト名>/web/WEB-INF を展開し、web.xml をダブルクリックしてビジュアルエディタで開きます。
  2. ツールバーで「一般」ボタンを選択し、「セッションタイムアウト」フィールドにタイムアウトの時間 (分単位) を入力します。

現在のセッションによって次の要求のセッションタイムアウトを動的に変更するには、次の手順に従います。

ページ Bean のイベントハンドラで、次のコードを追加または変更します。

      // 次の応答のタイムアウトを 10 分に変更
      javax.servlet.http.HttpSession session = 
         (javax.servlet.http.HttpSession) getExternalContext().getSession(true);
      session.setMaxInactiveInterval(10 * 60); // 引数は秒単位

注: この手順は、ふたたび変更を行うまで、このセッションのすべての要求のタイムアウトを変更します。


現在のセッションを無効にするには、次のコードを使用します。

      // 現在のセッションを無効にする
      javax.servlet.http.HttpSession session =
         (javax.servlet.http.HttpSession) getExternalContext().getSession(true);
      session.invalidate();

Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo