基本的な開発方法
Javaを利用したWebアプリケーション開発において,MVC(Model-View-Controller)モデルの開発が一般的である.JavaでのMVCモデル開発の方法として以下の2つが挙げられる.
1.Servlet・JSP・JavaBeansを利用して開発
MVCのControllerとしてServlet,ViewとしてJSP,ModelとしてJavaBeansを利用して開発を行う.
2.SpringBootなどのフレームワークを利用して開発
Javaにはさまざまなフレームワークがあり,それらを利用することでMVCモデルの開発を行う.
SpringBootに関しては以下の記事にまとめた.
この記事では,1.Servlet・JSP・JavaBeansを利用して開発についてまとめる.
Servlet
Servletとは
ServletはHTTPリクエストの受け取りと処理,及びHTTPレスポンスの生成と送信を行うコンポーネント.ServletはWebコンテナ(サーブレットコンテナ)で実行される.
Webコンテナ(サーブレットコンテナ)とは
HTTPリクエストを受け取り,適切なサーブレットを実行し,HTTPレスポンスを生成してクライアントに送信する実行環境(ソフトウェア)のこと.
Servletの役割
1.リクエストの受信
HTTPリクエストを受け取り,リクエストパラメータやヘッダなどの情報を取得する.
2.リクエストの処理
リクエストに基づいた特定の処理を実行する.データベースの操作,ビジネスロジックの実行,APIへのリクエスト送信なども含む.
3.レスポンスの生成
HTTPレスポンスを生成する.HTMLやXML,JSONなどのコンテンツ生成やJSPを利用して生成を行う.
4.レスポンスの送信
生成したレスポンスをクライアントに送信する.
JSP
JSPとは
JSPはJavaServer Pageの略で,動的なWebコンテンツを生成するため技術である.HTMLに独自のタグを利用することでJavaのコードを埋め込むことができ,動的なWebページを作ることができる.
JSPの役割
1.ビューの表示
先ほど説明した通り,JSPは動的なWebページを生成する.Javaコードを埋め込むことによって,条件分岐や繰り返し処理などの制御フローを記述することができる.
2.データの表示
JSPはサーバーサイド(Servlet)からのデータを受け取り,それをHTMLテンプレートに埋め込むことによって表示することができる.
3.ユーザーからの入力に対する処理
JSPはフォームを実装し,ユーザーからのフォーム入力を受け取る.入力データをサーバーサイド(Servlet)に送ることができる.
JavaBeans
JavaBeansとは
Javaにおいて,データをひとつにまとめて格納するための部品化したクラスを作るための設計ルールのことである.クラスやライブラリとして提供されているものではなく,JavaBeansの設計ルールに従ってクラスを作成することで,Beanとして扱うことができる.
JavaBeansの役割
1.データの保持
データを保持するためのフィールド(プロパティ)を提供する.ServletやJSPから受けとっらデータを一時的に格納することで,別のコンポーネントと共有することもできる.
2.データの変換処理
データの変換などを行うメソッドもJavaBeansで実装する.ServletやJSPからJavaBeansにデータを渡し,数値の計算,文字列の操作などの処理結果を返すことができる.
3.データのバリデーション
JavaBeansは受け取ったデータのバリデーションを行うことができる.ServletやJSPが受け取ったデータをJavaBeansに渡すことで,入力データが正しいかを検証することができる.
処理の流れ
クライアントからリクエストを受けると,Webサーバサイドでは以下のようなイメージで処理が行われる.
1.HTTPリクエストを受け取り,リクエストパラメータなどの情報を取得する
2.取得したデータの保持や処理をJavaBeansに依頼する
3.保持しているデータやビジネスロジックなどの処理結果をServletに返す
4.ServletからJSPへデータを送り,動的なWebページを生成を依頼する
5.受け取ったデータとテンプレートから生成したwebページをServletに返す
6.HTTPレスポンスとしてクライアントに送信する
それぞれについて
Servlet・JSP・JavaBeansの基本について以下のページにまとめた.