このチュートリアルの "第 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 によるプログラミング」 を参照してください。