サーブレットプログラムを実行する サーブレットの場合には、あらかじめJavaのソースファイルをコンパイルしておく必要があり、コンパイル済みのファイルを「WEB-INF/」サブディレクトリの下の「classes/」ディレクトリ下に置くという手順が必要だ。 まずはJavaのソースファイルを用意しよう。ここでは、リスト2に示す「hello.java」ファイルを利用する。このファイルは、どのディレクトリ下に置いても構わない。 リスト2■hello.javaファイル import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletException; public class hello extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // サーブレットのクライアントからの要求に応答する部分 // ContentTypeを設定する response.setContentType("text/html"); // 出力用のPrintWriterオブジェクトを得る PrintWriter out = response.getWriter(); // 出力する out.println("<HTML>"); out.println("<BODY>"); int i; for (i = 1; i <= 6; i++) { out.print("<H"); out.print(i); out.print(">Hello Servlet</H"); out.print(i); out.println(">"); } out.println("</BODY>"); out.println("</HTML>"); } } 次に、リスト2のプログラムをコンパイルする手順だ。コンパイルするためには、J2SE SDKに含まれるJavaコンパイラ「javac」コマンドを使えばよい。 しかしリスト2では、サーブレットのためのクラスをインポート利用しているため、サーブレットのクラスの場所を「CLASSPATH」環境変数に設定しておかなければコンパイルに失敗してしまう。 Tomcatでは、サーブレット用のクラスが「/var/tomcat4/common/lib/servlet.jar」ファイルとして 提供されている。そこで、コンパイルする前に次のように「CLASSPATH」環境変数を設定すればよい。 $ export CLASSPATH=$CLASSPATH:/var/tomcat4/common/lib/servlet.jar
次に、リスト2のソースファイルを置いたディレクトリをカレントディレクトリにして、「javac」コマンドを使いコンパイルをしてみよう。 $ /usr/java/j2sdk1.4.0_01/bin/javac hello.java 無事コンパイルが完了すると、 カレントディレクトリに「hello.class」と付けられたclassファイルが作成されているはずだ。 このファイルがサーブレットとして動作するコンパイルされたclassファイルとなる。このファイルを、 先に用意しておいた「sample/」ディレクトリの「WEB-INF/classes/」ディレクトリ下に置く。手順は次の通りだ。 # mkdir /var/tomcat4/webapps/sample/WEB-INF 次に、配置したclassファイルをTomcatに読み込ませるため、Tomcatデーモンを再起動させる。 # /etc/rc.d/init.d/tomcat4 restart 以上で設定は完了だ。配置したサーブレットへは、次のURLでアクセスができる。 http://[サーバ名またはIPアドレス]/sample/servlet/hello
実行結果は、先に示したJSPの例とほぼ同じく、画像4のようになる。 このように、Tomcatでは配置したサーブレットは、「http://[サーバ名またはIPアドレス]:8080/パス名/servlet/クラス名」というURLでアクセスができる。
リスト1とリスト2を比較すると分かるように、サーブレットであるリスト2でクライアントに出力する場合、逐一PrintWriterオブジェクトのprintメソッドやprintlnメソッドを使わなければならない。このため、HTMLタグ出力には手間が必要となりプログラムも見づらくなる。第1回目の冒頭にて、サーブレットではユーザーインタフェースを提供せず、JSPに任せたほうがよい、とコメントしたのはこのような理由からだ。 「Administration Tool」を使い「server.xml」ファイルを編集する ここまでの説明のように、Tomcatでは「server.xml」ファイルを編集することでコンテキストを作成し、Webアプリケーションを設定するという手順になる。server.xmlファイルはXML形式のファイルであり、Tomcatのドキュメントにはその設定書式が記載されている。
しかし、開発されたアプリケーションを配置するたびに「server.xml」ファイルを編集するのは面倒だろう。そこでTomcat 4.1では、WebブラウザからTomcatの設定編集が可能なツール「Administration Tool」が用意されている。 |
|||||