はじめてのHello World!

どのプログラミング言語入門でも最初の例として挙げられる、定番の「Hello World!」プログラムを作成してみましょう。

まずは、Eclipseを起動します。

ワークスペースフォルダの選択ダイアログが表示されますが、ワークスペースの選択は任意に変更してください。ここではそのまま「OK」をクリックします。
※ワークスペースとは、次から作成していく「プロジェクト」を保存するフォルダのことです。ひとつのワークスペースに複数の「プロジェクト」を保存できます。

Eclipseが起動したら、メニューから「ファイル」-「新規」-「プロジェクト」をクリックします。

メニュー

プロジェクトとは開発したソースファイルや実行環境の情報などの集まりのことです。
ワークスペースとして指定したフォルダ内にプロジェクトのフォルダが作成されます。

新規プロジェクトの作成ウィザードが表示されます。

新規プロジェクト作成ウィザード

「動的Webプロジェクト」を選択し、「次へ」ボタンをクリックします。

動的Webプロジェクト

「プロジェクト名」には任意の名前を入力します。
ここでは「HelloWorld_PJ01」と入力します。
入力したらあとはそのまま「完了」ボタンをクリックします。

下記ダイアログが表示されたら、「はい」をクリックします。

ダイアログ

これで新規プロジェクトが作成されました。

新規プロジェクト

画面左のプロジェクトエクスプローラーから「HelloWorld_PJ01」の△マークをクリックするとプロジェクトの中身が展開されます。

「HelloWorld_PJ01」を選択した状態で、メニューから「ファイル」-「新規」-「サーブレット」を選択します。

「サーブレット作成」ダイアログが表示されます。

サーブレット作成

「Javaパッケージ」と「クラス名」に任意の名前を入力します。
ここでは、それぞれ「sample_pkg01」、「HelloWorldServlet」と入力します。
入力後、「次へ」をクリックします。

そのまま「次へ」をクリックします。

「継承された抽象メソッド」にチェックが入っていることを確認し、「doGet」にチェックを入れ、「doPost」のチェックをはずします。
「完了」ボタンをクリックします。

画面左のプロジェクトエクスプローラーから「HelloWorld_PJ01」-「Javaリソース」-「src」-「sample_pkg01」とたどり、「sample_pkg01」配下に、最小限のソースコードが記述された状態で「HelloWorldServlet.java」が生成されていることを確認できます。

HelloWorldServlet.javaを開くと、2つの警告が表示されています。
行番号の左にあるアイコンにマウスを近づけると下図のように警告の原因が表示されます。

HelloWorldServlet.java

その警告アイコンをクリックすると、下図のようなウインドウが浮かび上がります。

警告

「欠落している@Override注釈を追加します」をクリックします。

@Overrideアノテーション

これでソースコード上に「@Override」アノテーションが追加されました。
アノテーションとは直訳すると注釈という意味になり、Javaでは、そのアノテーションをソースコード上に埋め込むことで、単純なミスを防ぐことができます。
ここで追加した@Overrideアノテーションは、スーパークラス(この例ではHttpServletクラス)のdoGetメソッドをオーバーライドすることを明示しています。
この例のようにメソッドの前に、@Overrideアノテーションを記述することで、コーディングのミスによりオーバライドが成立していない場合(例えば、メソッド名は正しいが、引数の数が間違っている場合等)には、コンパイラが通知してくれます。
これにより、プログラムの不具合をコンパイル時に発見することが可能になります。

メニューから「ファイル」-「保管」をクリックすると、警告が消えます。

コーディング

ここまでが準備作業になり、次からが実際のコーディングになります。

HelloWorldServlet.javaを開き、doGetメソッドに出力処理を記述します。

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    PrintWriter out = response.getWriter();
    out.println("<html>");
    out.println("<head>");
    out.println("<title>Hello World!</title>");
    out.println("</head>");
    out.println("<body>");
    out.println("<h1>Hello World!</h1>");
    out.println("<p>First Servlet</p>");
    out.println("</body></html>");
}

上記を記述するとまた警告が表示されます。
これはインポートしていないクラス(この例ではPrintWriterクラス)を使用したことに対する警告です。

行番号左の赤い警告アイコンをクリックし、「’PrintWriter’をインポートします」をクリックします。

PrintWriterインポート

すると、java.io.PrintWriterのimport文が追加され、警告が消えます。

サーブレット実行

では、作成したサーブレットを実行してみましょう。

プロジェクトエクスプローラーから「HelloWorldServlet.java」を右クリックし、「実行」-「1 サーバーで実行」をクリックします。

「サーバーで実行」ダイアログが表示されます。

サーバーで実行

そのまま「完了」ボタンをクリックします。

すると、Eclipse上の内部ブラウザに下図のような内容が出力されます。

HellowWorld

インターネットエクスプローラー等、通常のブラウザから実行する場合は、アドレスバーに下記アドレスを入力します。

http://localhost:8080/HelloWorld_PJ01/HelloWorldServlet