MVCモデル2による Webアプリケーション ソフトウェア特論 第9回 ここでの内容 Servlet と JSP の使い分けについて学ぶ。 「MVCモデル2」について学ぶ。 「MVCモデル2」を用いた開発技法について学ぶ。 Servlet と JSP の使い分け Servlet – Servlet から HTML を出力させると、プログラムの見通 しが悪くなる。 Servlet ではプログラムに専念するのがよい。 JSP – – JSP でスクリプトレットを使うと、読みにくい。 スクリプトレットに間違いがあると、デバッグがしにくい。 JSP では、できる限りタグを使うのがよい。 MVCモデル2 (1) 概要 Webアプリケーションを構 成する要素を3つに分ける。 – – – Model View Controller MVCモデル2 (2) Model アプリケーションのデータと必 要な処理(=ビジネスロジッ ク)をまとめたもの JavaBeans(あるいはそのコレ クション)を使う MVCモデル2 (3) View Model を表示させる部分 JSPを使う MVCモデル2 (4) Controller Model と View を制御す る Servletを使う MVCモデル2 (5) 処理の流れ Servlet がHTTPから要求を受け取り、必要な処理をする。 – データベースへのアクセスなど 処理した結果を JavaBeans にまとめる。 Servlet は JavaBeans (または、Beans をまとめたコレク ション) を JSP に渡す。 JSP はタグライブラリを駆使して処理結果を出力する。 – Bean のプロパティを出力する サンプルプログラム 図書の検索を行うプログラム まずユーザがWebブラウザに検索したい本の情 報を入力する。 その情報をもとに Servlet が検索処理をする。 JSPが検索結果を表示する。 Model の準備 Model は JavaBeans、あるいはそのコレクション – – 1冊の図書データはBookData に格納 複数の図書データは java.util.List に格納 Bean には setter, getter を用意する。 Servlet の処理 // データベースから検索して、結果をBeanに格納 List list = search(ndc, tyosya_hyouji, id, title, author, publisher); // HttpSession を取り出し、Beanを登録 HttpSession session = request.getSession(); session.setAttribute("bookList", list); // 後の処理をJSPに任せる context.getRequestDispatcher(jspFile) .forward(request, response); JSP の処理 // タグライブラリの利用を宣言 <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> // HttpSession から Model であるコレクションを取り 出す <c:forEach var="book" items="${sessionScope.bookList}" > タグライブラリを使ったループ処理 <ul> <c:forEach var="book" items="${sessionScope.bookList}" > <li> <c:out value="${book.title}" /> / <c:out value="${book.author}" /> </li> </c:forEach> </ul>
© Copyright 2024 ExpyDoc