- - PR -
セッションについて
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2002-07-29 11:42
ただいまサーブレットの勉強をしているものです。
早速ですが以下の問題で困っています。 サーブレットでセッションを確保し、Jspページにリダイレクトします。 session = request.getSession(true); session.setAttribute("OfficeNO", OfficeNO); response.sendRedirect(response.encodeRedirectURL (http://localhost:8080/Test/xx.jsp)); 次にJSPにて以下のようなコードを書いた場合常にtrueが帰ってきます。 <% System.out.println(session.isNew()); %> インターネットオプションのセッション毎のクッキーも有効にしているにも関わらずtureが帰ってくるのはどこかおかしいのでしょうか。 IE5.5 Tomcat3.3.1 (スタンドアローン) jdk1.3.1 |
|
投稿日時: 2002-07-29 12:55
> サーブレットでセッションを確保し、Jspページにリダイレクトします。
このServletとJSPは同一ServletContext内にありますか? サンプルコードで言えば、Servletはhttp://localhost:8080/Test/でリクエストされる環境にありますか?違っていれば、sessionは引き継げません。 サンプルのServletは、以下のようなレスポンスを返すはずです。 ==================================================================== HTTP/1.0 302 Found Content-Type: text/html Location: http://localhost:8080/Test/xx.jsp Content-Length: XXXXX Set-Cookie2: JSESSIONID=gbqm5wvix1;Version=1;Discard;Path="Context RootのPath" Set-Cookie: JSESSIONID=gbqm5wvix1;Path=Context RootのPath Servlet-Engine: Tomcat Web Server/3.3.1 (JSP 1.1; Servlet 2.2; ・・・・) <head><title>Document moved</title></head> <body><h1>Document moved</h1> This document has moved <a href="http://localhost:8080/Test/xx.jsp">here</a>.<p> </body> ======================================================================== このレスポンスを受けた(現在の一般的な)ブラウザは、Locationヘッダに指定されたアドレスに、リクエストを出します。その際に、上の"Context RootのPath"が/Textであれば(すなわち、Servletがhttp://localhost:8080/Text/で始まるリクエストで要求されたものならば)、リクエストヘッダにCookie: JSESSIONID=8dva3evbk1を含めます。 _________________ /** @author K.Nakagome */ [ メッセージ編集済み 編集者: nakagome 編集日時 2002-07-29 12:56 ] |
|
投稿日時: 2002-07-29 15:14
nakagomeさん返信ありがとうございます。
>このServletとJSPは同一ServletContext内にありますか? >サンプルコードで言えば、Servletはhttp://localhost:8080/Test/で >リクエストされる環境にありますか?違っていれば、sessionは引き継げません。 この返信にヒントがあり無事問題を解決する事ができました。 問題はご指摘の通りServletContextが違っていて、実際はtestだったのですが、先頭を大文字Testにしたのが問題だったみたいです。 大文字と小文字でも問題があるとは思ってもいませんでした、どうもありがとうございました。 |
1
