軟體的分層,選單樹,重用頁面程式碼
阿新 • • 發佈:2018-12-16
軟體的分層
一般分為 表現層(控制器servlet+檢視jsp) 表現層呼叫service Service – 業務邏輯層 (呼叫dao,並且會加入業務邏輯) 下訂單: 訂單號,支付金額,送貨地址 — 訂單表 訂單號 商品1 單價 數量 折扣 — 訂單詳情表 訂單號 商品2 單價 數量 折扣 — 訂單詳情表
DAO (data access object) 資料訪問層 – 資料的增刪改查 訂單dao 訂單詳情dao
實體類 (entity, domain) – 用來儲存資料的類,一般來講,一個類對應資料庫的一張表
在頁面上按價格查詢 minPrice, maxPrice, 但資料庫中只有一個價格屬性 值物件 (value object-簡稱VO) – 跟頁面打交道的資料存入值物件,不是對應資料庫表
注意:
- 不能跨層呼叫,只能表現層->業務邏輯層->DAO
- 層與層進行呼叫,最好使用介面,不要直接呼叫實現類 擴充套件性差,耦合度高(一層程式碼的改動會影響到另一層的程式碼)
選單樹的實現
1) 資料部分(dao,service)
如果選單的資料量比較大,可以分多次查詢 第一次查詢一級選單,之後點選哪個一級選單再去查詢相應的二級選單 如果選單的資料量比較小,可以一次全部查詢出來 要點:使用map集合建立選單節點之間的父子關係,提高效率
2) 展現部分
用了一套css框架 bootstrap 要點:找出頁面中html的規律,使用標籤和el表示式改寫原有靜態程式碼 el表示式中要分清屬性和方法
${集合.size()} // getSize()
${選單物件.name} // getName()
empty 檢查集合是否為空
not empty 檢查集合是否不為空
重用頁面程式碼
<%@ include file=“新頁面”%> 針對eshop專案寫新頁面時,複製/jsp/include/template.jsp, 根據自己需要改動中間部分即可