- PR -

addHeaderの使い方

投稿者投稿内容
Hide
会議室デビュー日: 2003/02/25
投稿数: 11
投稿日時: 2003-07-15 11:18
Test1サブレートに下記のコードを書いても、飛び先Test2のヘッダに
myName=Hideがありません。
==Test1の抜粋==
response.addHeader("myName","Hide");
response.sendRedirect("http://xxx.yyy.zzz/web/servlet/Test2");
==========

==Test2の抜粋==
for (Enumeration e = request.getHeaderNames() ; e.hasMoreElements() {
thisName = e.nextElement().toString();
out.println(thisName + " =");
thisValue = request.getHeader(thisName);
out.println(thisValue + "<BR>");
if(thisValue != null){
headerHash.put(thisName,thisValue);
}
}
==========

setHeaderも試しましたが、同じ結果になりました。

addHeaderを利用して、飛び先サブレートに情報を渡す方法を教えて頂きたく、
宜しくお願いいたします。
Shane
大ベテラン
会議室デビュー日: 2003/06/06
投稿数: 132
お住まい・勤務地: Vancouver, BC
投稿日時: 2003-07-15 14:59
addHeader は現在のコンテンツに対してのメソッドなので、
Hideさんの意図しているような事は不可能です。

クエリーストリングで渡すのはダメですか?
response.sendRedirect("http://xxx.yyy.zzz/web/servlet/Test2?myName=Hide");
取得の仕方は HttpServretRequest::getParameter() を参照してください。

Hide
会議室デビュー日: 2003/02/25
投稿数: 11
投稿日時: 2003-07-15 15:21
Shinさん、

ご回答ありがとうございます。
クエリーストリングで渡すとGET方法と同じようになりますので、
できれば、POST方法のような渡し方のほうがよいです。
POSTで渡すとFormにSubmitを実行する必要がありますよね。
Submitを実行する必要がなく、自動的に次のサブレートへ飛ばして、
POST方法でパラメータを渡す方法を分かれば、教えてください。
宜しくお願いいたします。

Tan
まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2003-07-15 17:02
用語は正確に。
少なくとも日本では「サブレート」ではなく「サーブレット」が一般的かと。

本題。
RequestDispatcher#forword()あたりがやりたいことでしょうかね?
Hide
会議室デビュー日: 2003/02/25
投稿数: 11
投稿日時: 2003-07-15 17:15
まりりさん、

御教示ありがとうございます。
以下のようなシナリオで運用したいです。
サーバ1のサーブレットTest1からサーバ2のサーブレットTest2へ自動的にジャンプします。
ジャンプする同時にmyName=Hideを渡したいです。
但し、下記のようなクエリーストリングで渡すではなくて、POST方法やヘッダに書き込むように渡したいということです。
response.sendRedirect("http://xxx.yyy.zzz/web/servlet/Test2?myName=Hide");
サーバが違いますので、クッキーに書き込むこともできません。
Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2003-07-15 22:38
Hideさん、POSTされたときクライアントが送信するパラメータがコンテンツ
としてどのように渡されるかご存知でしょうか?

もしご存知なら、javax.servlet.Filterとか使ってみるのもいいかも
知れません。

ご存知でなかったら、クライアントが送るコンテンツを読む簡単なサーブ
レットを作って試して見てください。ヒントになると思いますよ。
わらび
ベテラン
会議室デビュー日: 2002/08/30
投稿数: 53
投稿日時: 2003-07-16 10:05
こんにちは。わらびです。
まりりさんのおっしゃる通り、リクエスト領域に値をセットして
forword()を使えば、フォーワード先でその値wp参照することができます。

わらび
ベテラン
会議室デビュー日: 2002/08/30
投稿数: 53
投稿日時: 2003-07-16 10:06
こんにちは。わらびです。
まりりさんのおっしゃる通り、リクエスト領域に値をセットして
forword()を使えば、フォーワード先でその値wp参照することができます。

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