HttpServletRequestインタフェースを実装するクラスは、前述した ServletRequestインタフェースの全てのメソッドを HTTP固有の方式で実装することになります。 また、Cookieの取得、HTTPヘッダーの取得といった HTTP固有のメソッドも提供します。
HttpServletRequestインタフェースの主なメソッド
| メソッド |
動作 |
| Cookie[] getCookies() |
クライアントから送信された Cookieオブジェクトの配列を返します。 |
| String getHeader(String name) |
指定された要求ヘッダの値を String として返します。 |
| Enumeration getHeaders(String name) |
指定された要求ヘッダのすべての値を、String オブジェクトの Enumeration として返します。 |
| Enumeration getHeaderNames() |
すべてのヘッダ名を Enumerationとして返します。 |
| String getMethod() |
GET、POST、PUT など、この要求を作成した HTTP メソッドの名前が返されます。 |
| HttpSession getSession() |
この要求に関連付けられた現在のセッションを返します。 |
|
getHeaderメソッド、getHeaderNamesメソッド
getHeaderメソッドは指定されたヘッダーの値を一つだけ返します。指定されたヘッダーが存在しない場合は nullを返します。また、getHeaderNamesメソッドでは送信されたヘッダの名前一覧を取得できるので、全てのヘッダを出力することが出来ます。
[ソース]
package com.sitecooler.servlet;
import java.util.*;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SampleGetHeaderNames extends HttpServlet {
protected void doGet(
HttpServletRequest req,
HttpServletResponse res)
throws ServletException, java.io.IOException {
doRequest(req,res);
}
protected void doPost(
HttpServletRequest req,
HttpServletResponse res)
throws ServletException, java.io.IOException {
doRequest(req,res);
}
private void doRequest(
HttpServletRequest req,
HttpServletResponse res)
throws ServletException, java.io.IOException {
req.setCharacterEncoding("Shift_JIS");
res.setContentType("text/html;charset=Windows-31J");
PrintWriter out = res.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<table table width='500' border='1' cellspacing='0' cellpadding='2'>");
out.println(" <tr>");
out.println(" <th width='30%'>名前</th>");
out.println(" <th width='70%'>値</th>");
out.println(" </tr>");
Enumeration objEnum = req.getHeaderNames();
while(objEnum.hasMoreElements()) {
String strName = (String)objEnum.nextElement();
String strVal = (String)req.getHeader(strName);
out.println(" <tr>");
out.println(" <td>" + strName + "</td>");
out.println(" <td>" + strVal + "</td>");
out.println(" </tr>");
}
out.println("</table>");
out.println("</body>");
out.println("</html>");
}
}
[実行例]
getMethodメソッド
getMethodメソッドは要求で使用されている HTTPメソッドを文字列として返します。
[ソース]
package com.sitecooler.servlet;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SampleGetMethod extends HttpServlet {
protected void doGet(
HttpServletRequest req,
HttpServletResponse res)
throws ServletException, java.io.IOException {
doRequest(req,res);
}
protected void doPost(
HttpServletRequest req,
HttpServletResponse res)
throws ServletException, java.io.IOException {
doRequest(req,res);
}
private void doRequest(
HttpServletRequest req,
HttpServletResponse res)
throws ServletException, java.io.IOException {
res.setContentType("text/html;charset=Windows-31J");
PrintWriter out = res.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Hello World</title>");
out.println("</head>");
out.println("<body>");
out.println("HTTPメソッドは ");
out.println(req.getMethod());
out.println(" です。");
out.println("</body>");
out.println("</html>");
}
}
[実行例]