回答受付中の質問
JSPのクライアントからサーブレットにHTTPリクエストを送信する部分について、質問させていただきたく思います。
[実現したいこと]
・クライアント側からのHTTPリクエストのヘッダの内容を、任意のものに書き換えてサーブレットに送信。
[環境]
WEB APサーバー:Web Sphere Aprication Server
HTTPヘッダを読み取って、ヘッダ内のクライアント情報を元にクライアント別の処理を振り分ける機能を作ったのですが、そこの機能をテストするのに上の機能を使いたいと思ってます。。。
皆様のお知恵を拝借できればと思います。
よろしくお願いいたします。
投稿日時 - 2004-07-03 15:14:47
0人が「このQ&Aが役に立った」と投票しています
回答(1件中 1~1件目)
振り分けの処理が正しくできるかどうかを確認するのでしたら、
HTTPヘッダにこだわらずに、必要なパラメータをフォームで作ってサーブレット側にポストするように考えたらどうでしょう?
[test01.jsp]
<html>
<head>
<title>テスト01</title>
</head>
<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ page import = "java.util.Enumeration" %>
<body>
<form name="test" action="myServlet" method="POST" target="servlet_window">
<table>
<%
Enumeration header_names = request.getHeaderNames();
while (header_names.hasMoreElements()) {
String name = (String)header_names.nextElement();
String value = request.getHeader(name);
out.print("<tr><td>" + name + "</td><td><input type=text size=100 name='" + name + "' value='" + value + "'></td></tr>");
}
%>
</table>
<input type="submit" value="サーブレットテスト送信">
</form>
</body>
</html>
サーブレット側はgetHeader(String headerName)で値を取得する部分を
getParameter(String parameterName)に置き換えます。
[myServlet.java]
import java.io.*;
import java.lang.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
public class myServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
//String user_agent = request.getHeader("User-Agent");
String user_agent = request.getParameter("User-Agent");
....
....
}
}
全然外してたらごめんなさい。
投稿日時 - 2004-07-05 13:53:22
お礼
ありがとうございます。この方法でいけそうです!
投稿日時 - 2004-07-05 20:04:43
OKWaveのオススメ
おすすめリンク