ページの先頭行へ戻る
 Apcoordinatorユーザーズガイド

19.3.2 JBKプラグイン使用時のセション管理

JBKプラグインを使用する場合、セションはUjiServletConnectionオブジェクトのライフサイクルと同一となります。アプレット内で常に同じセションを維持したい場合は、UjiServletConnectionのライフサイクルをアプレットと同一にしてください。

また、JSPの画面からアプレットの画面に遷移する場合、セションを維持するためにはブラウザからクッキーを取得し、UjiServletConnectionに設定する必要があります。この場合、com.fujitsu.uji.ext.PluginUtilityクラスを使うと、ブラウザから簡単にクッキーを取得することができます。

例を次に示します。

import java.net.URL;
import com.fujitsu.uji.ext.UjiServletConnection;


 /*
  * 初期化処理。
  */
  protected void initUser () {
    try{
       // UjiServletConnectionオブジェクトを生成します。
       conn = new UjiServletConnection();
       conn.setURL(new URL("http://somehost/myServlet"));

       // ブラウザのクッキーを取得し、UjiServletConnectionオブジェクトに設定します。
       String cookie = com.fujitsu.uji.ext.PluginUtility.getCookieFromBrowser(this);
       // 設定するクッキーを取り出します。
       // ここでは全てのクッキーをUjiServletConnectionに設定しています。
       if(cookie != null && cookie.length() != 0){  
          conn.setCookie(cookie);
       }

       // 送信するデータを生成します。
       MyBean reqBean = new MyBean();
       MyBean resBean = (MyBean)conn.invoke(reqBean,"verb");
    } catch(Exception e){
       // 通信に失敗した場合の処理を記述します。
    }
 }

ポイント

アプレットからJSPに遷移する方法は、通常のApcoordinatorの遷移方法と同様です。

実装例はアプレット連携機能のサンプルを参照してください。

さらに、JBKプラグインを使用する場合は、明示的にセションを切断することが可能です。アプレット内でセションを切断したい場合は、UjiServletConnectionクラスのclearCookieメソッドを使用してください。なお、ここでいうセションの切断とは、アプレットとサーバとの間のセションを切断することであり、サーバ側のセションを破棄することではありません。

import java.net.URL;
import com.fujitsu.uji.ext.UjiServletConnection;


  protected void method() {
    try{
      // UjiServletConnectionオブジェクトを生成します。
      conn = new UjiServletConnection();
      conn.setURL(new URL("http://somehost/myServlet"));

      // セションを明示的に切断する。
      conn.clearCookie();

      // 送信するデータを生成します。新しいセションが作成されます。
      MyBean reqBean = new MyBean();
      MyBean resBean = (MyBean)conn.invoke(reqBean,"verb");
    }  catch(Exception e){
      // 通信に失敗した場合の処理を記述します。
    }
}

注意

明示的なセションの切断は、JBKプラグインのみ有効です。

Java Plug-inを利用する場合は、UjiServletConnectionクラスを使用したセションの明示的な切断はできません。