第 2 部

このチュートリアルの "第 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 サーバーにデータを送信できます。GETPOST の関係、およびサーブレットでコーディングする方法の詳細については、227 ページの第 20 章「Java サーブレット API によるプログラミング」 を参照してください。