幾個概念:
Domain Model 領域模型-->對象模型(核心)
DDD(領域驅動設計)
Pattern 代碼級 架構級 分析(RBAC 基于角色的管理)
Framework 框架——基礎性的設施
多層架構概述
C/S:以數據庫為中心
B/S:多層架構才是真正的目的,業務運算、數據庫等功能
完全分離,杜絕彼此的耦合與影響,從而實現耦合和良好的可維護性。
復習:C/S,B/S的優缺點:
C/S 優點:
1.C/S架構的界面和操作可以很豐富。
2.安全性能可以很容易保證,實現多層認證也不難。
3.由于只有一層交互,因此響應速度較快。
C/S 缺點:
1.適用面窄,通常用于局域網中。
2.用戶群固定。由于程序需要安裝才可使用,因此不適合面向一些不可知的用戶。
3.維護成本高,發生一次升級,則所有客戶端的程序都需要改變。
B/S 優點:
1)客戶端無需安裝,有Web瀏覽器即可。
2)BS架構可以直接放在廣域網上,通過一定的權限控制實現多客戶訪問的目的,交互性較強。
3)BS架構無需升級多個客戶端,升級服務器即可。
B/S 缺點:
1)在跨瀏覽器上,BS架構不盡如人意。
2) BS架構的表現要達到CS程序的程度需要花費不少精力。
3)在速度和安全性上需要花費巨大的設計成本,這是BS架構的最大問題。
4)客戶端服務器端的交互是請求-響應模式,通常需要刷新頁面,這并不是客戶樂意去做的。(在Ajax實用化后此問題得到了一定程度的緩解)
SSH分別所處的位置:
呈現層(UI Layer/Presentation Layer) struts
業務邏輯層(Business Layer) spring
持久化層(Persistent Layer) hibernate
具體如下圖:
關于MVC:
平常寫Web(tomcat + Jsp + servlet)時的一個很普通的例子:
MVC1 & MVC2的區別:
mvc1:jsp職責:顯示,參數獲取, 模型層的調用, 轉向(小型項目)
mvc2:從jsp抽取出控制器(servlet)
mvc實現原理:
通過一個類來統一截獲所有請求
分為兩種:
面向請求驅動——struts1.x,struts2.x webwork
面向事件驅動—— JSF
面向請求驅動原理:
Struts 的MVC實現:
1. 制定母本,key-E
例:文件名:app.txt
內容:name=name
submit=password
2. 將母本轉為Unicode碼
將文件app.txt拷貝到jdk的安裝目錄下的bin文件夾內
例:路徑:C:"Program Files"Java"jdk1.5.0_06"bin
開始----運行------cmd ------- cd C:"Program Files"Java"jdk1.5.0_06"bin
打命令:native2ascii -encoding GB2312 app.txt app.properties
注釋:GB2312 是生成后的字符集,app.txt是目標文件,app.properties是生成后的文件名
將生成的屬性文件app.properties復制到res
3. 在res下的txt包下制定副本key-zh.txt
name=姓名
submit=提交
以native2ascii -encoding GB2312 app_zh.txt app_zh.properties的方式生成app_zh.properties文件,并復制到res下,此時中文被轉碼成Unicode碼:
name=\u59d3\u540d
submit=\u63d0\u4ea4
以同樣的方式制定 key-en.txt(等等等)副本
4.將res文件夾編譯到classes
5.配置struts-config.xml文件
6.重啟tomcat,配置成功
測試:切換瀏覽器默認語言(右鍵瀏覽器圖標---- 語言 -----)