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