EC2にNginx+Tomcat+CorrettoでJava11環境を作るTweetこの連載ではAWSのEC2を使ってJavaのWebアプリ環境を数回に渡って作成していきます。作成する環境は以下の通りです。(Corretto11)前回まででEC2上にJava11およびNginx+TomcatのWebサーバ環境を構築しました。今回はサーバーで実行確認をするための、簡単なサーブレットプログラムを作成しましょう。プログラムの作成にはEclipseを使用します。プロジェクトの作成まずはプロジェクトを作成します。「Web」→「動的webプロジェクト」を選択して「次へ」をクリックしましょう。プロジェクト名は「ServletSample」とします。(Java11)」を選択して「次へ」をクリックしましょう。「次へ」をクリックして、最後の画面で「web.xmlデプロイメント記述子の生成」にチェックを入れて「完了」をクリックしましょう。作成したプログラムを動かすためのローカルサーバーを用意します。「サーバー」→「サーバー」を選択して「次へ」をクリックしましょう。サーバー」を選択したら「完了」をクリックします。続けてサーバーに、先ほど作成したプロジェクトを追加します。「サーバー」タブを表示して、右クリック→「追加および除去」をクリックしましょう。「ServletSample」を選択して「追加」をクリックし、構成済みの一覧に移動できたら「完了」をクリックします。これでサーバーの作成とプロジェクトの登録ができました。あとは実際にプログラムを作成して実行してみましょう。JSPファイルの用意サーブレットとJSPファイルを作成していきます。JSPファイルは「index.jsp」と「result.jsp」を用意し、それぞれ以下の用途で使用します。足し算の入力フォームを用意する。index.jspで入力された2つの値を足した結果を表示する。プロジェクト・エクスプローラーでServletSampleを開き、「WebContent」→「WEB-INF」の下に「views」フォルダを作成します。その中に「index.jsp」と「result.jsp」を作成します。→「新規」→「JSPファイル」から行いましょう。ウィザードが開いたら、ファイル名だけ入力して「完了」から保存します。同じようにresult.jspを作成して、以下の様になっていればいいです。先ほど作成したindex.jspの中を以下の様に記述してください。type="submit">計算</button></form></body></html>変更したのはtitleタグの中身と、bodyの中に配置したform関連の箇所です。次にサーブレットのプログラムを作成します。プロジェクト・エクスプローラーでServletSampleを右クリックし、「新規」→「サーブレット」をクリックしましょう。ウィザードが開いたら、クラス名に「Sample」を入力して「完了」をクリックしてください。(パッケージ名は今回は空にしています。)「Javaリソース」→「src」→「(デフォルト・パッケージ)」に「Sample.java」が作成されます。中身を開いて、エディタウィンドウで以下の様にdoGetメソッドの中身を書き換えましょう。response);}このプログラムを実行したときに先ほど作成したindex.jspが表示されるかを確認します。実行ボタンの横の「▼」をクリックして、「実行」→「サーバーで実行」をクリックしましょう。サーバーを選択する画面が表示されるので、作成したTmocat9サーバーを選択して「完了」しましょう。Eclipseの内臓ブラウザで以下のようなページが表示されていればOKです。(ブラウザで「http://localhost:8080/ServletSample/Sample」にアクセスして確認してもOKです。次にindex.jspで「計算」ボタンがクリックされた際の処理、doPostメソッドを作成します。doPostメソッドにはフォームで入力された「x」と「y」の値を足し算して、result.jspに受け渡す処理を以下の通り記述しましょう。手順3.で用意した、result.jspの中身を記述していきましょう。以下の様に、手順6.で処理した計算結果(resultの値)を表示する画面にします。「http://localhost:8080/ServletSample/Sample」にアクセスしましょう。index.jspが表示されるので、フォームに適当な数値を入力して「計算」をクリックしてください。以下の様に計算結果が表示されていれば完成です。今回は完全にJavaの内容となってしまいましたが、第1回、第2回で作成したEC2サーバーで実行するためのプログラムが完成しました。次回(最終回)は作成したプログラムをアップロードして、サーバーでの実行確認をしたいと思います。