Java開発で使われたStruts1を復習!仕組み・流れのポイント整理

Strutsは、Struts1とStruts2のバージョンがありますが、私の現場ではStruts1を使っていたので、Struts1についてまとめてみようと思います。
目次
Struts1とは
Struts1は、JavaでWebアプリケーションを構築するためのMVCフレームワークです。これにより、ビジネスロジックと画面表示の役割を分離し、保守性や再利用性を高めることができます。2000年代初頭に登場し、業務系Webシステムで広く使われていました。リクエストをActionクラスで処理し、JSPで結果を表示する仕組みを持っています。また、設定ファイル(struts-config.xml)によってアプリの振る舞いを柔軟に制御できます。
MVCモデルとは
Struts1ではMVCモデルを使っています。
MVCモデルとは、ソフトウェアを3つの役割に分けて設計するアーキテクチャパターンのことです。主にWebアプリケーション開発で使われ、保守性・再利用性の高い構造を作るために用いられます。
MVCは次の3つの要素で構成されます。
・Model(モデル):アプリケーションのデータやビジネスロジックを担当します。
たとえば、データベースからデータを取得・保存したり、業務ルールに従った処理を行う部分です。
・View(ビュー):ユーザーに表示される画面部分を担当します。
HTMLやJSP、テンプレートエンジンなどがこれに該当し、Modelのデータを受け取って整形・表示します。
・Controller(コントローラー):ユーザーからの入力(リクエスト)を受け取り、ModelとViewをつなぐ役割を担います。入力内容を検証し、必要に応じてModelに処理を依頼し、結果をViewに渡して表示させます。
3つの機能に役割が分かれているため、保守・拡張がしやすく、複数人での分業がしやすく、開発効率が向上します。
Struts1の処理の流れ
1.ユーザーがブラウザからリクエスト送信
2.ActionServletがリクエストを受け取る
リクエストの入口となるのが「ActionServlet」です。これはユーザーからのリクエストを受け取り、適切な処理(Actionクラス)に振り分けるControllerの役割をします。
3.struts-config.xmlを参照して適切なActionFormを生成し、入力値を格納
ルーティングの設定は、struts-config.xmlに記述します。
struts-config.xmlでは、URLパスに対応するActionクラスを定義し、処理後にどの画面へ遷移するか記載されています。
ActionFormは、HTMLフォームの入力値を保持・管理するJavaBeansクラスです。
バリデーションやデータ受け渡しの役割を持ち、ActionクラスとViewの橋渡しをします。
4.ActionFormのバリデーションチェック。エラーがあれば指定のJSPに戻る、なければ Actionクラスを実行
5.Actionクラスがビジネスロジックを実行し、結果をActionForwardで返す
実際の処理を担うのが「Actionクラス」です。リクエスト情報を受け取り、必要に応じてビジネスロジックを呼び出したり、DBアクセスなどを行います。処理結果は「ActionForward」で次に表示するページ(View)へと渡されます。
6.ActionServletがActionForwardに従って、該当するJSPを表示
結果の表示はJSPなどのテンプレートで行います。必要なデータはリクエストスコープなどを通じてJSPに渡され、ユーザーに見せる画面を構築します。
このようにStruts1は、明確な役割分担により、機能追加や修正がしやすいアーキテクチャになっています。