Apcoordinator ユーザーズガイド
目次 前ページ次ページ

第3部 Webアプリケーションの開発> 第18章 アプレットとの連携> 18.3 セション管理について

18.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){
       // 通信に失敗した場合の処理を記述します。
    }
 }
   
さらに、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クラスを使用したセションの明示的な切断はできません。

目次 前ページ次ページ

All Rights Reserved, Copyright © 富士通株式会社 2000-2005