HTTPリクエストのパラメータを入手する


サーブレットを使って、クライアントからリクエストされてきた問合せ文字列(パラメータ)を入手することができます。
パラメータ名が指定できれば、パラメータの値が取得できます。
下のコードはdoGetメソッドを実装しています。
ExamRequestParamクラスのdoGetメソッドを呼び出すための操作が2通りありますが、それぞれ実行しています。

パターン1:Uブラウザのアドレスフィールドに問合せ文字列を直接入力し、呼び出し。
パターン2:HTMLフォームから問い合わせ文字列を入力し、呼び出し。

import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

/**
 * getParameter(String  parameter_name)  method returns
 *  parameter  values.
 */

public class ExamRequestParam extends HttpServlet {
    public void doGet(HttpServletRequest request,
                      HttpServletResponse response)
        throws IOException, ServletException
    {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        out.println("<html>");
        out.println("<head>");

        String title = "Requesut parameter";
        out.println("<title>" + title + "</title>");
        out.println("</head>");

        out.println("<body>");
        out.println("<h1>" + title + "</h1>");
        out.println("Param1 " + " : " + request.getParameter("param1"));

        out.println("</body>");
        out.println("</html>");
    }
}

<パターン1の実行結果>
ブラウザのアドレスフィールドに、http://localhost:8080/bigcare2/servlet/ExamRequestParam?param1=abcdefgと入力すると、以下の応答画面が表示されます。





<パターン2の第1画面>
HTMLフォームから問合せ文字列を入力し、"SEND"ボタンをクリックすると、処理結果が返ってきます。
参考までにHTMLソースをこのページの下に載せています。




<パターン2の実行結果>

パターン1の実行結果と同じ画面になります。


<request.getParameter() method>
 引数にパラメータ名を表す文字列を設定すると、パラメータの値を入手することが出来ます。
 アドレスフィールドの中で問合せ文字列を使う場合、パラメータ名とパラメータ値は"="で関係付けられ、左辺がパラメータ名、
 右辺がパラメータ値になります。


<参考:requestParam.html> <html>
<head>
<title>Requesut parameter</title>
</head>
<body>
<h1>Requesut parameter</h1>
<form
action="http://localhost:8080/bigcare2/servlet/ExamRequestParam">
<pre>
PARAM1 :<input type="text" name="param1">
<input type="submit" value="send">
</form>
</body>
</html>

<form>タグにメソッドが記述されていません。
この事から、デフォルトのメソッドはGETメソッドであることが判ります。
つまり、サーブレットのdoPostメソッドを呼び出したい場合は、<form>タグに明示的にメソッドを記述する必要があります。