Eclipseの使い方 Servlet — No Tomcat編
ここでは、Tomcatを使わないで
Eclipse(バージョン3.4以降)でServletを実行する方法を紹介する。
(Jettyという Eclipseに内蔵されているサーブレットコンテナを使用する。)
Eclipseの機能は膨大なので、ここですべての機能を紹介することはとてもできない。
このページでは、情報システム演習(Servletの作成)でよく使うと思われるごく一部の機能を紹介する。
Servletではない、通常の Javaアプリケーション・アプレットの場合(計算機ネットワーク
Ⅰで使用する)は、
Eclipseの使い方 Javaアプリケーション編を見よ。
動的Webプロジェクトの作成
動的WebプロジェクトはJava Servlet/JSPなどのためのプロジェクトであり、
Servletの実行に必要な設定ファイルを自動生成してくれる。
- 「ファイル (File)」―「新規 (New)」―「プロジェクト (Project..)」で現れる
「ウィザードを選択 (Select a wizard)」というウインドウで
「Web」を展開し、
「動的Webプロジェクト (Dynamic Web Project)」を選択して、
「次へ (Next)」をクリックする。
- 「プロジェクト名 (Project name)」は英数字で適当につけて、
「ターゲット・サーバー (Target runtime)」が「J2EE プレビュー」
になっていることを確認して、「終了 (Finish)」をクリックする。
「ターゲット・サーバー」が「<なし> (<None>)」 になっている場合、
- 右の「新規 (New..)」を クリックし、
- 「ランタイム環境のタイプを選択 (Select the runtime type:)」で、「基本」
—「J2EE プレビュー」を選択し、「終了 (Finish)」をクリックする。
(以下の説明ではInfoSysEnshuというプロジェクト名をつけると仮定する。)
以降、情報システム演習で作成するプログラムは、
すべてこのプロジェクト内に作成すれば良い。
Servletの作成
- 「プロジェクト・エクスプローラー (Project Explorer)」の中でクラスを作成する
動的Webプロジェクトを選択してから、
「ファイル (File)」―「新規 (New)」―「その他 (Other..)」を選択する。
- 「ウィザードを選択 (Select a wizard)」というウインドウで「Web」を展開し、
「サーブレット (Servlet)」を選択し、
「次へ (Next)」をクリックする。
- 「クラス名 (Class name)」に作成するクラスの名前を入力し、「終了 (Finish)」をクリックする。
(以下の例ではHelloServletという名前をつけると仮定する。)
- クラス定義のテンプレートが表示されるので、
残りの部分を入力する。例えば、次のようなimport文:
import java.io.PrintWriter;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
を追加し、次のようなメソッドを定義する。
(灰色はテンプレートに既に用意されている部分である。)
…
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/plain; charset=Windows-31J");
PrintWriter out = response.getWriter();
out.println("Hello World!");
out.close();
}
- 「ファイル (File)」―「保管 (Save)」(もしくはCtrl+s)でファイルの保存と同時に自動的にコンパイルされる。
注意:
サーブレットは必ず上記の方法で作成して下さい。コピー・ペーストや「名前変更」などで作成しても、
設定ファイル(web.xml)が書き換えられないため、うまく動作しません。
HTMLの作成
動的Webプロジェクトの場合、HTML, JSPなど Servlet以外のコンテンツは WebContentというフォルダに置く。
(このフォルダの内容がアプリケーションルートにコピーされる。)
-
「プロジェクト・エクスプローラー (Project Explorer)」の中でクラスを作成する動的Webプロジェクトの
「WebContent」というフォルダを選択してから、
「ファイル (File)」―「新規 (New)」―「その他 (Other..)」を選択する。
- 「ウィザードを選択 (Select a wizard)」というウインドウで「Web」を展開し、
「HTML」(JSPの場合は「JSP」)を選択し、「次へ (Next)」をクリックする。
- 「ファイル名 (File name)」に作成するファイルの名前を入力し、
「終了 (finish)」をクリックする。
- テンプレートが表示されるので、残りの部分を入力する。
- http://localhost:8080/プロジェクト名/ファイル名で見ることができる。
Servlet・HTMLの実行
- 「実行 (Run)」―「実行 (Run As)」―「サーバーで実行 (Run on Server)」で、
「サーバーで実行」
というウインドウが現われるので、「localhost の J2EEプレビュー」
を選択していることを確認して、「終了 (Finish)」をクリックする。
サーバが起動するとともに
Eclipse内にWebブラウザが起動して、サーブレットが生成したページが表示される。
-
このときに「このプロジェクトを実行するときは常にこのサーバーを使用
(Always use this server when running this project)」をチェックしておくと、
以後にこのプロジェクト内に作成するサーブレットでは、同じ質問はされない。
-
一度サーバを起動したら、以降は、
- ソースを書き換えてセーブする。
- 「サーバー (Server)」タブの中で「サーバーを停止」()をクリックし、つづけて
「サーバーを再始動」()をクリックする。
(Tomcatのときのように自動的に再起動はしません。)
- ブラウザの「現行ページの更新 (Refresh the current page)」()ボタンをクリックする。
の繰り返しになる。
- Eclipse外部のブラウザ(IEやFirefox)でもhttp://localhost:8080/InfoSysEnshu/HelloServletと入力するとサーブレットが生成したページを見ることができる。
ただし、InfoSysEnshuの部分は自分のつけたプロジェクト名に、
HelloServletはクラス名に置き換える。
さらなる参考リンク
Koji Kagawa (kagawa@eng.〜)
(〜の部分はSPAM mail予防のため省略します。)