- PR -

セッションについて

1
投稿者投稿内容
chamaro
会議室デビュー日: 2002/07/28
投稿数: 10
投稿日時: 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
Paul
ベテラン
会議室デビュー日: 2002/04/30
投稿数: 75
お住まい・勤務地: 東京
投稿日時: 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 ]
chamaro
会議室デビュー日: 2002/07/28
投稿数: 10
投稿日時: 2002-07-29 15:14
nakagomeさん返信ありがとうございます。

>このServletとJSPは同一ServletContext内にありますか?
>サンプルコードで言えば、Servletはhttp://localhost:8080/Test/で
>リクエストされる環境にありますか?違っていれば、sessionは引き継げません。
この返信にヒントがあり無事問題を解決する事ができました。

問題はご指摘の通りServletContextが違っていて、実際はtestだったのですが、先頭を大文字Testにしたのが問題だったみたいです。
大文字と小文字でも問題があるとは思ってもいませんでした、どうもありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)