このチュートリアルの "第 1 部" の例では、簡単な文字列の値を出力しました。しかし、実際のサーブレットは通常、パラメータを通じて入力を受け入れます。
サーブレットは 2 つのタイプのパラメータを使用します。要求パラメータと初期化パラメータです。このセクションでは要求パラメータについて説明し、"第 3 部" で初期化パラメータについて説明します。
要求パラメータ (単にパラメータと呼ばれることもある) を使用して、サンプル プログラムで単に「Hello World」と出力するのでなく、「Hello <your name>」と出力できます。
次のコード例は、getParameter メソッドを使用してパラメータの値を取得する方法を示しています。取得しようとしているパラメータの名前が定義されていない場合、getParameter メソッドはヌル値を返します。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld2 extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException, ServletException {
resp.setContentType("text/html");
String userName;
PrintWriter out = resp.getWriter();
out.println("<html><head><title>Hello</title></head><body>");
if ( (userName = req.getParameter("userName")) != null)
out.println("Hello " + userName);
else out.println("Hello, who are you?");
out.println("</body></html>");
}
}
ここまではパラメータを取得する方法について説明しました。次は、パラメータを指定する方法について説明します。パラメータを指定する最も基本的な方法は、要求 URL でクエリ文字列を使用する方法です。クエリ文字列を使用して、次のようにパラメータを指定できます。
http://localhost/servlet/HelloWorld2?userName=Hal
パラメータを指定するもう 1 つの方法は、SHTML ファイル内で <servlet> タグを使用する方法です。
<servlet code="helloWorld2" >
<param name="userName" value="Hal"> </servlet>
このほかに、HTML フォームなどを使用してパラメータを指定できます。HTML フォームは GET または POST メソッドを使用して Web サーバーにデータを送信できます。GET と POST の関係、およびサーブレットでコーディングする方法の詳細については、227 ページの第 20 章「Java サーブレット API によるプログラミング」 を参照してください。