模式 | 模式含义 | 策略 | 说明举例 | |||
| 用于对请求的预处理和后处理 | 标准过滤器策略 | 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> | |||||
服务到工作者 |
| 复合 | 以控制器为中心的一种框架(视图分配器模式以视图为中心) | |||
分配器视图 | 把前端控制器模式、视图助手模式和一个分配器组件结合起来,延迟了很多视图处理操作(适合视图处理前很少业务处理,把视图作为切入点) | 复合 |
|