はじめに
こんばんわ、きりです。
本記事はNablarchを使ってみようのサブ記事として作成しております。
前回はMavenのアーキタイプより基本的なWebアプリケーションを作成しました。
今回は、簡単なサーブレットを作成してみたいと思います。
本記事は、前回で作成したプロジェクトを使用しますので、プロジェクトをまだ作成していない場合は、まずは前回の記事を御覧ください。
本記事以外のコンテンツはこちらから閲覧可能です。
なるべく、初心者目線で作成するつもりですが、分かりづらい部分ありましたら、コメント頂きたいです。
動作環境
種類 | バージョン |
---|---|
OS | Windows Professional 20H2 |
Eclipse | 2022 Full Edition |
※Eclipseのダウンロードについては、こちらの記事をご確認ください。
サーブレットとは
サーブレットはJavaで作成されたウェブコンポーネントでサーブレット・コンテナによって実行されます。
サーブレット・コンテナはウェブ・サーバまたはアプリケーション・サーバの一部で、クライアントからHTTP/HTTPSのリクエストに対して、サーブレットの設定に基づいてどのサーブレットを呼び出しを行ういます。また、サーブレットが生成した応答データをクライアントに応答します。
サーブレット・コンテナの例ととしてtomcatが存在します。
まとめると、サーブレットを動作させるには以下の3つが必要となります。
- サーブレットを実行するサーブレット・コンテナ(tomcatなど)
- サーブレット・コンテナが対象のサーブレットを決定するためのサーブレット設定
- Javaによって作成されたサーブレットというなのJavaプログラム
プロジェクト設定の変更
サーブレットの話を進める前にMavenで作成したプロジェクトの設定をEclipseで作業しやすいように変更します
Eclipseプロジェクトへ変更
以下の実行構成を追加して、Eclipseプロジェクトに変換します
※変換してもMavenコマンドは利用できます
キー | 値 | 例 |
---|---|---|
種類 | Mavenビルド | |
名前 | 任意の値 | mvn-2-eclipse |
基底ディレクトリー | ${project_loc:web-app-sample} | |
ゴール | eclipse:eclipse |
ファセットの設定
ファセットとはなんぞや?と思ったりもしますが、Eclipseに「私はWebアプリケーションのプロジェクトですよ」と認識してもらうための設定であり、その特性や要件を定義するための設定。ぐらいに思っておけばよいかなと思います。
プロジェクトのプロパティーを表示し、プロジェクト・ファセットを選択し、「ファセット・フォームへ変換」をクリックします
動的Webモジュールをチェックし、「より詳しい構成が使用可能」をクリックします
「web.xmlデプロイメント記述子の生成」を選択し、OKボタンをクリックします
元のダイアログで適用して閉じます
この作業により、プロジェクト内のeclipseの設定ファイルが自動生成されたり変更されたりして、動的Webモジュールの設定が追加されたようです。
tomcatで実行
これまでの設定によりEclipseからtomcatにてプロジェクトを実行することができます
プロジェクト名を右クリック > 実行 > サーバで実行をクリックします
コンパイラのJavaバージョンに合わせて対象のtomcatを選択し、完了ボタンをクリックします
サーバービューが表示され、下図のように、「起動済み、同期済み」となれば成功です
tomcatの停止や実行、デバッグ
サーバの停止や実行、デバッグ起動はサーバービューより行えます
Javaソースフォルダの作成
MavenのWebアプリのアーキタイプですとソースフォルダが用意されていないため、ソースフォルダを以下の手順で作成する必要があるようです。
プロジェクト名を右クリック > 新規 > その他を クリック
ウィザードにて、Java > ソースフォルダー の順番で選択し、次へボタンをクリックします
フォルダー名欄に「./src/main/java」と入力して、完了ボタンをクリックします
プロジェクトにソースフォルダが追加されました
同じ要領で「./src/test/java」も追加しておきます
サーブレット設定
さて、やっとはサーブレット設定について話を進めます。
さっそくですが、サーブレットという名のJavaクラスを作成します
パッケージとクラス名を指定して、完了ボタンをクリックします
ファイルは期待通り作成されましたが、エラーがいっぱい出てそうです
必要なライブラリがプロジェクトに追加されていないようです。
pom.xml側で追加も可能ですが、今回はeclipseの設定から追加します。
プロパティー設定 > Javaのビルド・パス > クラスパス > ライブラリーの追加ボタンをクリックします
サーバー・ランタイムを選択し、次へボタンをクリックします
実行環境に合わせて、選択し完了ボタンをクリックします
適用して閉じます
エラーが消えビルドが成功します。
マーカービューからもエラーが消えました。
サーブレットの動作確認
作成したサーブレットはソース(./serc/main/java/com/example/HelloServlet.java)内のWebServletアノテーション名(@WebServletがアノテーションです)でアクセス可能です。
具体的にはtomcatの実行を行ったあと、URLに/HelloServletを追加してEnterを押すだけです。
上記のような画面が表示されれば成功です。
サーブレットのソースの内容について
作成したサーブレットはソース(./serc/main/java/com/example/HelloServlet.java)にはdoGetとdoPostという2つのメソッドが用意されており、その名の通り、クライアントからGETアクセスとPOSTアクセスが行われた場合にそれぞれの関数が呼び出されます。
最後に
今回はサーブレットの作成と動作確認を行いました。
tomcatとサーブレットを利用することで、Httpリクエストに対してJavaで実装したプログラムを行うことができました。
次回はサーブレットとJSPファイルを組み合わせたページの表示を行ってみたいと思います。
他の記事についてはこちらから御覧ください。