1. 程式人生 > >軟體的分層,選單樹,重用頁面程式碼

軟體的分層,選單樹,重用頁面程式碼

軟體的分層

一般分為 表現層(控制器servlet+檢視jsp) 表現層呼叫service Service – 業務邏輯層 (呼叫dao,並且會加入業務邏輯) 下訂單: 訂單號,支付金額,送貨地址 — 訂單表 訂單號 商品1 單價 數量 折扣 — 訂單詳情表 訂單號 商品2 單價 數量 折扣 — 訂單詳情表

DAO (data access object) 資料訪問層 – 資料的增刪改查 訂單dao 訂單詳情dao

實體類 (entity, domain) – 用來儲存資料的類,一般來講,一個類對應資料庫的一張表

在頁面上按價格查詢 minPrice, maxPrice, 但資料庫中只有一個價格屬性 值物件 (value object-簡稱VO) – 跟頁面打交道的資料存入值物件,不是對應資料庫表

注意:

  1. 不能跨層呼叫,只能表現層->業務邏輯層->DAO
  2. 層與層進行呼叫,最好使用介面,不要直接呼叫實現類 擴充套件性差,耦合度高(一層程式碼的改動會影響到另一層的程式碼)

選單樹的實現

1) 資料部分(dao,service)

如果選單的資料量比較大,可以分多次查詢 第一次查詢一級選單,之後點選哪個一級選單再去查詢相應的二級選單 如果選單的資料量比較小,可以一次全部查詢出來 要點:使用map集合建立選單節點之間的父子關係,提高效率

2) 展現部分

用了一套css框架 bootstrap 要點:找出頁面中html的規律,使用標籤和el表示式改寫原有靜態程式碼 el表示式中要分清屬性和方法

${集合.size()} // getSize()
${選單物件.name} // getName()

empty 檢查集合是否為空
not empty 檢查集合是否不為空

重用頁面程式碼

<%@ include file=“新頁面”%> 針對eshop專案寫新頁面時,複製/jsp/include/template.jsp, 根據自己需要改動中間部分即可