Eclipse で Servlet を実行する方法を紹介する。 サーブレットコンテナーとして Apache Tomcat を使用する。
Eclipse の機能は膨大なので、ここですべての機能を紹介することはとてもできない。 このページでは、本実験でよく使うと思われるごく一部の機能を紹介する。
なお、このページで説明することには、“Eclipse IDE for Enterprise Java Developers” «Eclipse 2021-03 以降は “Eclipse IDE for Enterprise Java and Web Develpoers”» が必要である。“Eclipse IDE for Java Developers” の場合は、 いくつか追加でプラグインをインストールする必要がある。 (詳細は各自でググること。)
Servlet ではない、通常の Java アプリケーション・アプレットの場合は、 Eclipse の使い方 Java アプリケーション編を見よ。
Dynamic Web Project(動的 Web プロジェクト)は Java Servlet/JSP などのためのプロジェクトであり、Servlet の実行に必要な設定ファイルを自動生成してくれる。
右の「New.. (新規)」を クリックし、
「Select the runtime type: (ランタイム環境のタイプを選択)」で、 「Apache」—「Apache Tomcat v8.0」) を選択し、「Next」をクリックする。
次の「Tomcat Server」という画面で
すでに、Tomcat をインストールしていた場合は、「Browse…」をクリックして、インストールしたディレクトリー
(おそらく「C:\Program Files\Apache Software Foundation\Tomcat 8.0
」)
を選択して「Finish」する。
Tomcat が未インストールの場合は、
「Download and Install…」をクリックする。
「フォルダーの選択」では「C:\Program Files\Apache Software Foundation\Tomcat 8.0
」のようなディレクトリー
を作成して、それを選択する。しばらく、“Unknown version of Tomcat was specified.”
のようなエラーメッセージが出ているが、それが消えるまで待つ(その間、右下に “Installing server
runtime environment (??%) ”のようなメッセージが出ている。)消えたら、「Finish」する。
注意: 必ず Tomcat v8.0 を選択する。
Tomcat v8.5 や v9.0 を選択すると、
先に、Tomcat のインストーラーを使って、インストールを済ませていると、
インストール先ディレクトリは、
「C:\Program Files\Apache Software Foundation\Tomcat 8.5
」
のような場所になってしまう。そうすると Eclipse を管理者権限で実行しない限り、
エラーがでて、ここから先に進めなくなってしまうようである。
以降、本実験で作成するプログラムは、 基本的にすべてこのプロジェクト内に作成すれば良い。
注意:(指示のない限り)プロジェクト内に新たにフォルダーを作成しないこと。 Java はソースファイルの階層がパッケージという概念と密接に関連するため、 フォルダーを変更してソースファイルを作成すると、例題のままでは動かなくなる。
import文
:
import java.io.PrintWriter; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; 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=UTF-8"); PrintWriter out = response.getWriter(); out.println("Hello World!"); out.close(); }
動的 Web プロジェクトの場合、HTML, JSP など Servlet 以外のコンテンツは
Eclipse 2020-12 以前は WebContent
Eclipse 2021-03 以降は src/main/webapp
WebContent
」というフォルダーを選択してから、
「File (ファイル)」―「New (新規)」―「Other.. (その他)」を選択する。http://localhost:8080/プロジェクト名/ファイル名
で見ることができる。http://localhost:8080/OOPLServlets/HelloServlet
と入力するとサーブレットが生成したページを見ることができる。
ただし、OOPLServlets
の部分は自分のつけたプロジェクト名に、
HelloServlet
はクラス名に置き換える。