サーブレットから別のJavaクラスを利用する
3.2 サーブレットから別のJavaクラスを利用する
サーブレットはWeb上で動作するJavaプログラムです。そのため、サーブレット内から別に定義されたJavaのクラスを呼び出し利用することもできます。本節では、サーブレットから別のクラスを呼び出すプログラムについて学習します。
サーブレットから別のJavaクラスを呼び出し利用するプログラム
このプログラムは、アクセスするたびに異なる「四季」を表示するサーブレットです。メインとなる画面を表示させるサーブレットと、動的に文字を変化させるロジックを記述したJavaプログラムの2つのファイルで構成されます。プログラムを作成し、サーブレットから別のJavaクラスを呼び出す方法とweb.xmlの追記方法について学習しましょう。
実行結果

アプリケーション構成

① ソース・フォルダ :web_basic/src/main/java
② パッケージ :ch03
③ 名前 :Season
➢ Season.java
3 | import java.util.Random; |
7 | private static Random random = new Random(); |
9 | public String getSeason(){ |
11 | int n = random.nextInt(12); |
① ソース・フォルダ :web_basic/src/main/java
② パッケージ :ch03
③ 名前 :SeasonServlet
④ スーパークラス :jakarta.servlet.http.HttpServlet
⑤ アクセスURL :http://localhost:8080/web_basic/SeasonServlet
➢ SeasonServlet.java
3 | import java.io.IOException; |
4 | import java.io.PrintWriter; |
6 | import jakarta.servlet.ServletException; |
7 | import jakarta.servlet.annotation.WebServlet; |
8 | import jakarta.servlet.http.HttpServlet; |
9 | import jakarta.servlet.http.HttpServletRequest; |
10 | import jakarta.servlet.http.HttpServletResponse; |
12 | @WebServlet("/SeasonServlet") |
13 | public class SeasonServlet extends HttpServlet { |
14 | public void doGet(HttpServletRequest request, HttpServletResponse response) |
15 | throws ServletException, IOException { |
17 | Season objSea = new Season(); |
19 | String seasonName = objSea.getSeason(); |
22 | PrintWriter out = response.getWriter(); |
23 | out.println("Season is " + seasonName); |
解説
このプログラムで重要なのは、サーブレットから別に定義されたクラスを呼び出し利用していることです。
SeasonServlet.java について説明します。SeasonServlet.java ファイルでは17行目と19行目でSeason クラスのインスタンスメソッドであるgetSeason()メソッドを呼び出し、季節名を取得しています。
サーブレット自体はJava プログラムで記述されるため、通常のJavaプログラムと同様に別のクラスを利用することができるのです。
17:Season objSea = new Season();
19:String seasonName = objSea.getSeason();
getSeason()メソッドの中でランダムな数字を生成して季節名を生成するため、アクセスする度に実行結果の画面が変わる仕組みになっています。
図 3.2.1: SeasonServletの実行画面
NEXT>> 3.3 本章のまとめ