目次へ

1.2. 簡単なサーブレットクラス

ここからはJakartaプロジェクト1 で開発が進められているアプリケーションサーバー「Tomcat」のVersion 4.1を対象に話を進めていきます。Tomcatは次のサイトからダウンロードできます。インストールおよび起動方法についての説明は省略します。

http://jakarta.apache.org/tomcat/index.html

サーブレットのプログラムを作成する場合、基本的に「javax.servlet.http.HttpServlet」クラスを拡張したクラスを作成します。「HttpServlet」クラスには「doGet」「doPost」など「doXXX」という名前のメソッドが7つ定義されており、それぞれHTTPの「GET」「POST」命令等に対応しています。GET命令があった場合には、doGetメソッドが呼び出され実行されます。

 import javax.servlet.*;
 import javax.servlet.http.*;
 import java.io.*;
   
 public class HelloServlet extends HttpServlet{
   protected void doGet(HttpServletRequest request,
                        HttpServletResponse response)
     throws ServletException,IOException{
       response.setContentType("text/html; charset=EUC-JP");
      PrintWriter writer=response.getWriter();
      writer.println("<html><head><title>sample</title></head>");
      writer.println("<body>こんにちは</body></html>");
    }
}

上記のサンプルプログラムは、簡単なHTMLファイルを返すサーブレットプログラムです。doGetメソッドだけが定義されており、このサーブレットがGET命令のみに対応していることが解ります。

応答を返す場合には「javax.servlet.http.HttpServletResponse」オブジェクトを使用します。まず初めに「setContentType」メソッドで、レスポンスのMIMEタイプを指定します。この値はそのまま、HTTPヘッダーの「Content-Type」の値として指定されます。また「charset=XXX」の部分は重要で、ここで指定された文字コードにエンコードして応答が返されます。ここが「EUC-JP」なら「EUC-JP」コードで、「Shift_JIS」なら「Shift_JIS」コードで返されます。指定しない場合には、何の変換も行いません。したがって日本語のページを表示する場合には、必ず文字コードを指定する必要があります。

応答内容の指定には、「getWriter」メソッドで「java.io.PrintWriter」オブジェクトを取得する方法がもっとも簡単です。「println」メソッドで指定した文字列が、コンテンツとして返されます。

上記のサンプルプログラムをコンパイルする場合には、Tomcatのインストールディレクトリの「common/lib」にある「servlet.jar」をクラスパスに含める必要があります。

(実習課題1)

以下のサーブレットプログラムを作成しなさい。実行までできるようにする必要は無い。

  • 要求のあった時刻を表示するプログラム

解答例はこちら

1 [2012/5/23追記] 2011/12/21にてJakarta Projectは廃止されました。このプロジェクトはApache Projectに移管済みです

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp