模式 |
模式含義 |
策略 |
說明舉例 |
|
用於對請求的預處理和後處理
標準過濾器策略
servlet標準的filter,比如一個filter過濾一種表單數據
定製過濾器策略
可以通過文件配置動態的很多filter,少用
基本過濾器策略
使用一個基類的filter,處理通用的邏輯,默認操作
模板過濾器策略
模板方法實現的
其他3:WebService過濾器策略,定製SOAP過濾器,JAX-RPC過濾器
前端控制器 |
提供用於管理要求的集中控制器
servlet前端策略(延伸:基類前端)
servlet集中控制
jsp前端
jsp標籤,少用
命令加控制器
引入命令模式
物理資源映射策略、邏輯資源映射策略、多路資源映射策略
資源統一映射
控制器中的分配器
如果視圖和分配器在系統中佔比小,可以用helper放到控制器中
過濾器控制器策略
過濾器實現爲集中控制器
Context對象
獨立於協議的方式封裝狀態,使狀態在整個應用系統中共享
請求Context策略:請求Context表策略(把Context對象封裝爲Map表),請求Context POJO策略,驗證Context策略,安全性Context策略,配置Context策略
RequestContext的ContextObject,封裝狀態數據
通用Context對象策略:Context對象工廠策略,Context對象自動複製策略,
應用控制器
實現了操作(action)和視圖管理的集中化、模塊化
命令處理器策略
CommandFactory,p150/167:前端控制器創建Context->操作管理(本模式)->視圖管理
視圖處理器策略
視圖工廠map中有string到view的map,或者通過配置
轉化處理器策略
transformHelper,AC調用helper取得結果,比如由xlst轉化而來
導航和流程控制策略
訪問某視圖之前,檢查前置條件;根據狀態可以有個簡單的狀態機;限制重複的請求。
消息處理策略:定製SOA消息處理策略,JAX-RPC消息處理策略(JAX-RPC引擎)
前段控制器->p164/186;
視圖和助手
把與表現格式無關的邏輯封裝在助手中,分爲視圖準備和視圖創建階段 |
基於模板的視圖策略
jsp標籤爲模板和servlet結合
基於控制器的試圖策略
在servlet控制器中writer中輸出
JavaBean助手策略
定製標記助手策略(標記文件助手、業務代表用作助手、)
JSTL,自定義taglib等,
複合視圖
把多個子組件封裝成一個聚合視圖 |
JavaBean視圖管理策略
主要使用jstl,el,bean存放狀態
標準標記視圖管理策略
jsp:include等
定製標記視圖管理策略
轉化器視圖管理
其他:早綁定資源策略,晚綁定
早:資源變化頻率小<%@include%>,晚:<jsp:include>
服務到工作者
前端控制器模式、視圖助手模式和一個分配器組件結合起來 |
複合
以控制器爲中心的一種框架(視圖分配器模式以視圖爲中心)
分配器視圖
把前端控制器模式、視圖助手模式和一個分配器組件結合起來,延遲了很多視圖處理操作(適合視圖處理前很少業務處理,把視圖作爲切入點)
複合