Cosminexus V9 アプリケーションサーバ 機能解説 互換編
(1) 使用するServlet API
Webアプリケーションを実装する際には,次に示すServlet APIを使用して実装してください。
なお,グローバルセッションIDのエンコードは,グローバルセッションが存在している場合に,Webアプリケーション内でこれらのServlet APIが呼び出され,HTTPセッションのセッションIDのエンコードが必要と判断されたときにだけ実行されます。
- サーブレットやJSP内で同一アプリケーションへのリンク先URLをレスポンスに出力する場合,次のAPIを使用してリンク先URLを出力してください。
- javax.servlet.http.HttpServletResponseインタフェースのencodeURL(java.lang.String url)メソッド
- javax.servlet.http.HttpServletResponseインタフェースのencodeUrl(java.lang.String url)メソッド
ただし,encodeUrl(java.lang.String url)メソッドは非推奨のAPIです。
- サーブレットやJSP内でjavax.servlet.http.HttpServletResponseインタフェースのsendRedirect()メソッドによって同一アプリケーションへのリダイレクトを行う場合は,リダイレクト先のURLを次のAPIを使用して取得してください。
- javax.servlet.http.HttpServletResponseインタフェースのencodeRedirectURL(java.lang.String url)メソッド
- javax.servlet.http.HttpServletResponseインタフェースのencodeRedirectUrl(java.lang.String url)メソッド
ただし,encodeRedirectUrl(java.lang.String url)メソッドは非推奨のAPIです。
これらのServletAPIを使用しないでWebアプリケーションを実装している場合,グローバルセッションIDのURL書き換えは実行されません。この場合,HTTPセッションおよびグローバルセッションは継続されません。
(2) JSPの記述例
URL書き換えによってグローバルセッションを制御する場合のJSPの記述例,および出力されるレスポンスの内容を示します。
- JSPの記述内容
<a href="<%= response.encodeURL("nextPage.jsp") %>">link</a>
|
- なお,この例は,次の前提に従っています。
- HTTPセッションのセッションIDは"xxxxx"である。
- グローバルセッションIDは"yyyyy"である。
- グローバルセッションIDの送信に使用するURLのパスパラメタ名は"gsessionid"である。
- 出力されるレスポンスの内容
<a href="nextPage.jsp;jsessionid=xxxxx;gsessionid=yyyyy">link</a>
|
-
- 注意
- 次に示すように,URL書き換えを使用しないでパスパラメタを設定するアプリケーションの場合,グローバルセッションのURL書き換えが実行されません。この場合,メモリセッションフェイルオーバ機能が有効になりません。
- URL書き換えによるグローバルセッションの制御が有効にならない例(JSPの場合)
<a href="nextPage.jsp;jsessionid=<%=session.getId()%>">link</a>
|
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.