- - PR -
Strutsのセッション管理
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-06-28 13:48
初めてセッションオブジェクトを生成するアクションからの画面遷移後、
ブラウザのアドレスバーに以下のようにセッションIDが表示されてしまいます。 http://aaa.bbb.co.jp/ccc/ddd/eee.jsp;jsessionid=032kos892983h987hr2wei92 これは一番最初にクライアントがブラウザからリクエストを送った時、 次のリクエストでクッキーがアクセプトされたかどうか確認するまで ブラウザがクッキーを受け付けるかどうか分からないので URL rewritingが使われているということがわかりました。 次回からのリクエストでクッキーがアクセプトしない場合URL rewritingが 使われると思うのですが、 初回時だけでなく、二回目以降もセッションIDがURLに表示されるのでしょうか? ご教授よろしくお願いします。 |
|
投稿日時: 2004-06-28 14:07
ご推察の通りです。
疑問に思ったらまず試してみるのが手っ取り早いですよ。 |
|
投稿日時: 2004-06-28 14:22
ご意見ありありがとうございます。
実際に試してみたのですがセッションIDは表示されませんでした。 これは正しい挙動なのでしょうか? また、Strutsはクッキーを使用しなくても正しく動作すると考えてよいのでしょうか?? |
|
投稿日時: 2004-06-28 16:26
あれ、変ですね。
encodeURL してますか? Struts の taglib は大抵のところで encodeURL を呼びだしていますので必要に応じてコンテナが適切にセッション ID を付加するはずです。 |
|
投稿日時: 2004-06-28 18:10
ご意見ありがとうございます。
現在Strutsはフレームワークとして使用しているだけでtaglibはほとんど使っていません。 クッキーを使用しない場合はencodeURLを呼び出さないといけないということでしょうか? |
|
投稿日時: 2004-06-28 18:50
仕様を読みましょうよ。まんま書いてあります。
http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/http/HttpServletResponse.html#encodeURL(java.lang.String) Encodes the specified URL by including the session ID in it, or, if encoding is not needed, returns the URL unchanged. The implementation of this method includes the logic to determine whether the session ID needs to be encoded in the URL. For example, if the browser supports cookies, or session tracking is turned off, URL encoding is unnecessary. |
1
