Servlet/JSP 応用編02 HTTPのリクエスト
はじめに
今回は、HTTPのリクエストについて解説していこうと思う。普通は、HTTPのリクエストの情報は隠されていて、直接操作することはない。しかし、デバッグの際に問題解決に役立つことがある。
これを利用すれば、POSTリクエストの内容も、メッセージとして表示される。
メソッド
様々な情報を取得でき、そのうちのいくつかを紹介しようと思う。
まず、リクエストラインを取得でき、「getMethod」では、リクエストの種類、「getRequestURI」で、リクエストされたURIを取得できる。ヘッダの情報も取得でき、「getHeader」で指定した名前のヘッダフィールドを取得、「getHeaderNames」ですべてのヘッダフィールドの名前を取得できる。
作成するプログラム
リクエスト情報を取得するサーブレットを作成する。こういう機能があるのだなと思っていたければよい。
public void doGet(HttpServletRequest request , HttpServletResponse response)
throws ServletException , IOException{
PrintWriter out = response.getWriter();
Page.header(out);
out.println("<p>Request URL<br>"+
request.getRequestURL()+"</p>");
out.println("<p>Host<br>"+
request.getHeader("Host")+"</p>");
out.println("<p>User-Agent<br>"+
request.getHeader("User-Agent")+"</p>");
out.println("<p>Remote Address<br>"+
request.getRemoteAddr()+"</p>");
Page.footer(out);
}
requestクラスのメソッド「getRequestURL」「getHeader」「getRemoteAddr」を使用している。HostとUser-Agentのヘッダ情報を取得しており、Hostは、サーバの情報、User-Agentは、ブラウザの種類を表す。「getRemoteAddr」はリクエスト送信元、つまり、ユーザのIPアドレスを表示する。
実行結果は以下のようになった。

ちゃんと表示されていることが分かる。
おわりに
今回は簡単にHTTPリクエストについて紹介した。次回はサーブレット/JSPとは一瞬ずれて、「データベース」について紹介したいとおもう。