どのプログラミング言語入門でも最初の例として挙げられる、定番の「Hello World!」プログラムを作成してみましょう。
まずは、Eclipseを起動します。
ワークスペースフォルダの選択ダイアログが表示されますが、ワークスペースの選択は任意に変更してください。ここではそのまま「OK」をクリックします。
※ワークスペースとは、次から作成していく「プロジェクト」を保存するフォルダのことです。ひとつのワークスペースに複数の「プロジェクト」を保存できます。
Eclipseが起動したら、メニューから「ファイル」-「新規」-「プロジェクト」をクリックします。
プロジェクトとは開発したソースファイルや実行環境の情報などの集まりのことです。
ワークスペースとして指定したフォルダ内にプロジェクトのフォルダが作成されます。
新規プロジェクトの作成ウィザードが表示されます。
「動的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つの警告が表示されています。
行番号の左にあるアイコンにマウスを近づけると下図のように警告の原因が表示されます。
その警告アイコンをクリックすると、下図のようなウインドウが浮かび上がります。
「欠落している@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’をインポートします」をクリックします。
すると、java.io.PrintWriterのimport文が追加され、警告が消えます。
サーブレット実行
では、作成したサーブレットを実行してみましょう。
プロジェクトエクスプローラーから「HelloWorldServlet.java」を右クリックし、「実行」-「1 サーバーで実行」をクリックします。
「サーバーで実行」ダイアログが表示されます。
そのまま「完了」ボタンをクリックします。
すると、Eclipse上の内部ブラウザに下図のような内容が出力されます。
インターネットエクスプローラー等、通常のブラウザから実行する場合は、アドレスバーに下記アドレスを入力します。
http://localhost:8080/HelloWorld_PJ01/HelloWorldServlet