- - PR -
addHeaderの使い方
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-07-17 11:48
Kissingerさん、わらびさん、
情報ありがとうございます。 forward()の方法を試しましたが、 ===ソース=== import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Test1 extends HttpServlet { public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException { ServletConfig conf = getServletConfig(); ServletContext sc = conf.getServletContext(); req.setAttribute("myName","Hide"); req.setAttribute("myID","10101"); sc.getRequestDispatcher("http://fsgt010.soft.hitachi.co.jp/jp1web/servlet/Test2").forward(req,res); /****************************************************************** Jump *******************************************************************/ res.sendRedirect("http://fsgt010.soft.hitachi.co.jp/jp1web/servlet/Test2"); res.setContentType("text/html;charset=EUCJIS"); PrintWriter out = res.getWriter(); out.println("<HTML>"); out.println("<HEAD>"); out.println("</HEAD>"); out.println("<BODY>"); out.println("</BODY>"); out.println("</HTML>"); } public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException { doPost(req, res); } } コンパイルできたが、実行失敗しました。 1)getRequestDispatcher()は同じサーバ上へのforwardしかできないみたいです。 2)また、forward()を利用すると、sendRedirect()が利用できないみたいです。 因みに、違うサーバ間のサーブレットへ自動的にジャンプし、パラメータを渡す方法がご存知なら、教えてください。 ** サーバ1のサーブレットTest1からサーバ2のサーブレットTest2へ自動的にジャンプします。 ジャンプする同時にmyName=Hideを渡したいです。 ** 宜しくお願いいたします。 | ||||
|
投稿日時: 2003-07-18 00:15
Hideさんの課題は少なくとも2つあるようですね。
1.他のサーバにジャンプすること。 2.POSTのように情報を渡すこと。 何をしたいのかは良く分かりません(多分全く別のアプローチで 解決可能なことなのかも知れません)が、いずれにしても HTTP および Servletに対する理解を深めたほうが良いのではないでし ょうか。 気になる点は、 1.Headerと Parameter, Parameterを混同してる? (情報を渡すことができればいいというのであればどれでもいいですが。) 2.sendRedirect()により、サーバからクライアントにどのような内容が 送られ、クライアントはどう振舞うか理解していない? なんですが、大丈夫でしょうか? (気に障りましたら御免なさい。) | ||||
|
投稿日時: 2003-07-18 14:08
ども、ほむらです。
元ネタはCGIの場合ですがJavaでも応用できるはずです。 (ブラウザの動作をエミュレートしてあげるだけです) 詳細はRFC2616 HTTP1.1に関する文書に目を通してください。 ------------------- 流れとしては。。。 1.送信先のサーバー PORT:80を開く 2.送信先にHTTPヘッダ(リクエスト)の送信 3.送信先にエンティティ(データ)を送信 4.送信先のサーバーからのHTTPレスポンスにてエラーチェック 5.後始末色々 例を使用するならば
フォームでsubmitしたような動作をつくれます。(エンコードを忘れずに) # あっLocation:は指定できなかったかも(笑 # 現在勉強中w | ||||
|
投稿日時: 2003-07-18 19:25
Javascriptが使えるのなら、OnLoadイベントでフォームをポストするような
HTMLを送ればできますね。 | ||||
