見出し画像

【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フレームワークとまだまだありますが、一つづつ勉強していきます

この記事が気に入ったらサポートをしてみませんか?