- 締切済み
HTTPリクエスト
JSPのクライアントからサーブレットにHTTPリクエストを送信する部分について、質問させていただきたく思います。 [実現したいこと] ・クライアント側からのHTTPリクエストのヘッダの内容を、任意のものに書き換えてサーブレットに送信。 [環境] WEB APサーバー:Web Sphere Aprication Server HTTPヘッダを読み取って、ヘッダ内のクライアント情報を元にクライアント別の処理を振り分ける機能を作ったのですが、そこの機能をテストするのに上の機能を使いたいと思ってます。。。 皆様のお知恵を拝借できればと思います。 よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- dayowl
- ベストアンサー率56% (84/148)
振り分けの処理が正しくできるかどうかを確認するのでしたら、 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"); .... .... } } 全然外してたらごめんなさい。
お礼
ありがとうございます。この方法でいけそうです!