Eclipce を使用した簡単な Java サーブレットの作成
技術情報 TOP へ

本ページでの使用環境
OS:Windows XP SP 2
Java:JDK 5.0 UPDATE 8
Tomcat:5.0.28
Eclipse:3.1.1
ここでは、JDK 5.0 UPDATE 8 、Tocmat 5.0.28 、Eclipse 3.1.1 及び Eclipse に Tomcat プラグインがインストールされていることを前提として説明いたします。 これらのインストールについては下記のページを参照ください。

JDK のインストール -Windows 編-

Eclipce 3.1.1 のインストール -Windows 編 -
* ここでは C:\eclipse に Eclipse をインストールした前提とします。

Tomcat 5.0.* 系のインストール -Windows 編 ( exe , zip ファイル ) -
* ここでは exe ファイルを使用して C:\Program Files\Apache Software Foundation\Tomcat 5.0 に Tomcat をインストールした前提とします。
( zip ファイルを使用してインストールした場合も本ページの手順で作成可能です。 )

Eclipse 3.1.1 の Tomcat プラグイン導入

( 1 ) 新規 Tomcat プロジェクトの作成

Eclipse を起動します。

メニューから [ ファイル ] -[ 新規 ] - [ プロジェクト] をクリックします。

以下の [ 新規プロジェクト ] 画面 が表示されますので、 [ Java ]- [ Tomcat プロジェクト ]を選択して、
[ 次へ ] をクリックします。



次の画面では、[ プロジェクト名 ] を入力します。プロジェクト名はここでは、「HelloWebApp」 とします。
入力したら、[ 次へ ] をクリックします。


次に以下の [ Tomcat プロジェクト設定 ] 画面が表示されます。

ここで、[ アプリケーション URI ] として、「/HelloWebApp」 がデフォルト値として設定されており、
この [ アプリケーション URI ] の値 「/HelloWebApp」 がこの Web アプリケーションのコンテキストパスになります。

* 「http://サーバ名/*****/index.html」などの URL の 「*****」の箇所になります。

ここでは、[ アプリケーション URI ] の値は 「/HelloWebApp」 としますので、そのまま [ 終了 ] をクリックします。


「ワークベンチ」画面に戻ります。これで新規「Tomcat プロジェクト」の作成は終了です。
左側の [ パッケージ・エクスプローラー ] に 「HelloWebApp」プロジェクトが作成されているのが確認できます。


左側の [ パッケージ・エクスプローラー ] の 「HelloWebApp」プロジェクトをクリックすると、 Tomcat 内の [ common/lib ] 内のライブラリーがクラスパスに追加されていることや、 [ WEB-INF ] フォルダが作成されていることが確認できます。


( 2 ) 新規クラスの作成

次に左側の [ パッケージ・エクスプローラー ] から [ WEB-INF/src ] フォルダを選択して、 [ 新規作成 ] - [ クラス ] をクリックします。


以下の [ 新規 Java クラス ] 画面が表示されますので、 次の値を入力します。

  • [ パッケージ ] に 「 hello 」を入力します。
  • [ 名前 ] に 「 SimpleServlet 」を入力します。

* つまり、 hello パッケージの SimpleServlet クラスを作成します。

入力後、[終了] をクリックします。

左側の [ パッケージ・エクスプローラー ] に hello パッケージの SimpleServlet クラスが作成されていることが確認できます。 この状態で SimpleServlet.java は編集可能となります。


SimpleServlet クラスに以下のプログラムを記述します。
ファイル名:SimpleServlet.java
package hello;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.*;

public class SimpleServlet extends HttpServlet {
	
	public void doGet(HttpServletRequest request, 
            HttpServletResponse response) 
                throws ServletException, IOException {

	    response.setContentType("text/html; charset=Shift_JIS");

	    /* HTML 出力用 PrintWriter */
	    PrintWriter out = response.getWriter();
	    
	    /* HTML出力 */
	    out.println("<html>");
	    out.println("<head>");
	    out.println("<title>Hello!</title>");
	    out.println("</head>"); 
	    out.println("<body>");
	    out.println("<H1>");
	    out.println("Hello!");
	    out.println("<H1>");
	    out.println("</body>");
	    out.println("</html>");
	    out.close();
		
	}
}

上記のプログラムの簡単な解説

サーブレットを作成する場合は、HttpServlet を継承したクラスを使用します。 doGet メソッド ( GET リクエストが行われた場合に実行されます。 ) 内で、 リクエストに対するレスポンス出力処理を行います。 PrintWriter ( テキスト出力ストリーム ) オブジェクトを HttpServletResponse オブジェクトから作成し、 PrintWriter オブジェクトの println メソッドを使用して、HTML を出力します。

上記から、SimpleServlet を実行した場合、「Hello!」 という文字列を表示する、 HTML が出力されます。

* レスポンスとして出力された HTML はクライアント側ブラウザで受信され、ブラウザはHTMLを表示します。

上記のプログラムを記述もしくはコピーで貼り付け [ 保存 ] します。


( 3 ) web.xml の作成

次に web.xml を作成します。

web.xml とは Deployment Descriptor と呼ばれる設定ファイル一つです。 対象の Web アプリケーションがどのような URL で、どのサーブレットを呼び出すかを定義したり、 ( これをサーブレットマッピングと呼びます。 ) サーブレットに関する初期設定や起動時の設定情報を記述したりします。

ここでは、web.xml の新規作成と簡単にサーブレットマッピングだけを行います。
左側の [ パッケージ・エクスプローラー ] で [ WEB-INF ] を選択して右クリックし、 [ 新規 ] - [ ファイル ] をクリックします。

* [ WEB-INF/src ] ではなく、 [ WEB-INF ] です。



以下の[ 新規 ファイル ] 画面が表示されますので、 [ ファイル名 ] に 「 web.xml 」を入力し、[ 終了 ] ボタンをクリックします。


左側の [ パッケージ・エクスプローラー ] で web.xml が作成されているのが確認できます。 この状態で web.xml は編集可能となります。


web.xml に以下の内容を記述します。
ファイル名:web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>  
   <servlet>
        <servlet-name>Simple</servlet-name>
        <servlet-class>hello.SimpleServlet</servlet-class>
   </servlet>  
    <servlet-mapping>
        <servlet-name>Simple</servlet-name>
        <url-pattern>/SimpleServlet</url-pattern>
    </servlet-mapping>   
</web-app>

上記の web.xml の簡単な解説

web-app 要素 ( <web-app> ) の中に servlet 要素 ( <servlet> ) と servlet-mapping 要素 ( <servlet-mapping> ) を複数記述できます。

servlet 要素及び servlet-mapping 要素についての簡単な設定
servlet 要素では、servlet-name 要素と servlet-class 要素をペアで記述します。
servlet-mapping 要素では、servlet-name 要素と url-pattern 要素をペアで記述します。

また、servlet 要素及び servlet-mapping 要素には同じ servlet-name 要素が記述されていることが確認できます。

<servlet>
<servlet-name>
Simple</servlet-name>
<servlet-class>hello.SimpleServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>
Simple</servlet-name>
<url-pattern>/SimpleServlet</url-pattern>
</servlet-mapping>

上記を確認すると、url-pattern 要素と servlet-class 要素は、それぞれの servlet-name 要素
Simple で関連付けられていることがわかります。

「 http://サーバ名:8080/HelloWebApp/SimpleServlet 」という URL でリクエストが来た場合、 「 /SimpleServlet 」の URL パターンに一致するのは、servlet-name 要素に記述のある
Simple となり、 Simple という servlet-name から servlet 要素内の servlet-class 要素のに記述のある 「hello.SimpleServlet」( hello パッケージの SimpleServlet クラス ) が実行されることになります。

( 上述の ( 1 ) で設定したように、ここではコンテキストパスが 「HelloWebApp」となります。 )

上記から、「 http://サーバ名:8080/HelloWebApp/SimpleServlet 」という URL のリクエストが届いた場合、 hello パッケージの SimpleServlet クラスが実行されます。

上記の web.xml の設定内容を記述もしくはコピーして貼り付け [ 保存 ] します。

以上で web.xml の設定は終了です。
( 4 ) Tomcat のコンテキスト更新

左側の [ パッケージ・エクスプローラー ] で「HelloWebApp」プロジェクトを選択して、 「Tomcat プロジェクト」- [ Tomcat のコンテキストを更新 ] をクリックします。


( 5 ) プロジェクトのビルド

左側の [ パッケージ・エクスプローラー ] で「HelloWebApp」プロジェクトを選択して、 「プロジェクト」- [ プロジェクトのビルド ] をクリックします。

* [自動的にビルド] がチェックされているときは、チェックをはずして [ プロジェクトのビルド ] をクリックします。

エラー等のないことを確認します。


( 6 ) 動作確認

Tomcat を起動します。


コンソールに「Server startup」が表示され、 Tomcat が正常に起動されたことを確認します。

下記のアドレスにブラウザでアクセスします。
< http://localhost:8080/HelloWebApp/SimpleServlet >

以下の画面が表示されれば成功です。



技術情報 TOP へ


Google
WWW を検索 whitemark.co.jp を検索
[ 株式会社ホワイトマーク TOP ]   [ 免責事項 ]

Copyright © 2006 by WhiteMark, All rights Reserved. Last Modified: 2006/05