【WEBアプリ】スッキリわかるサーブレット&JSP 12/13/14章
■動的インクルードと静的インクルード
動的インクルード:実行中に他のJSPファイルの実行結果を取り込む
→主な用途:ヘッダー、フッターのようなテンプレをはめ込む
<jsp:include page="/header.jsp" />
静的インクルード:実行前に他のJSPファイルの内容を取り込む
→主な用途:他のJSPファイルに宣言、定義した変数を利用したい時(importと似てる)
<%@ include file="common.jsp" %>
静的インクルードはWEBデザイナーと仕事する時に、JSPファイル内Javaコードを減らすためのもの、
または、部品化してチームで開発しやすいようにするためのもの、
ってイメージでいいのかな?
いや、コードの再利用化か!!!←これだ!!!
■EL式
スコープに保存してあるインスタンスの簡単な呼び出し方
インスタンスの取得:${属性名}
インスタンスのプロパティの値の取得:${属性名.プロパティ}
※この取得方法であれば、指定した属性名のインスタンスを
ページスコープ→リクエストスコープ→...→あぷリケーションスコープ
の順で探してくる
スコープを指定して取得したい場合は、
リクエストスコープを指定する方法:${requestScope.属性名}
セッションスコープを指定する方法:${sessionScope.属性名}
アプリケーションスコープを指定する方法:${applicationScope.属性名}
とする。そうすると異なるスコープで属性名が同じインスタンスであっても取得することができる
※プロパティが出てきているし、値の取得に関することなので、getterは各インスタンスのクラスで実装している必要がある
EL式の演算子
human.age = 10の時
${human.age + 1} -> 11
${human.age >= 10} -> true
${empty human} -> false
${not empty human} -> true
empty/not emptyに関しては対象が、
スコープに未保存、null、空文字、要素数が0の配列、インスタンスを1つも格納していないコレクションクラスインスタンス
以上を評価しfalse/trueを返す
■JSTL
EL式は簡単に値にアクセスできるけど、JSPファイル内のスクリプト要素内で使用できない為、カスタムタグのJSTLを用いて記述する
ifやループ処理中に使用したい場合はJSTLのCoreタグライブラリを利用し記述することになる
文法がややこしいので、慣れるまで大変かもしれないが、
WEBデザイナーがJSPファイルの編集する上でなるべくJavaを減らした方が効率的に開発できるそう
■JDBCプログラムとDAOパターン
JavaとDB、WEBを連携させる
この書籍のこれまでアプリケーションスコープに保存していたインスタンスをDBに保存することで実現させる
また、画面遷移図、基本アーキテクチャ図の書き方、その後の実装しやすい順番、単体テストしていく順番に関して学んだ
■終わりに
ひとまず、ここまででスッキリわかるサーブレット&JSP読破!
これからやりたいこととして、Maven/Gradleどちらか導入、JUnitでのテスト駆動開発、AWSでWEBアプリのデプロイ、Springフレームワークとまだまだありますが、一つづつ勉強していきます