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クラスを使用したセションの明示的な切断はできません。