Posted on 2006-01-18 17:42
JDeodar 阅读(383)
评论(0) 编辑 收藏 所属分类:
J2EE
Web Tier Design -- Web层设计
1、设计目标
A:一个清晰的Web层。
用MVC达到:控制器(Controller)对象,接受用户输入的信息,并调用业务逻辑去创建和更新模型对象。模型(Model)对象,提供要显示的数据,提供控制器和视图之间的契约。视图(View)对象,显示由控制器提供的模型对象。
B:Web层应该尽可能地薄。
2、请求驱动的Web MVC框架
一个HTTP请求过来,被一个通用的分发器servlet(dispatcher servlet)分析,再被分发到一个对应的应用处理器。处理器依次处理UI特有的控制逻辑,调用业务对象和管理会话状态(如果需要),准备一个模型,再转发到一个视图。每个UI动作对应一个处理器,后者通常被称为动作(action)或控制器(controller),具体的名称虽框架而定。
控制器可能被建模为可重用、线程安全的处理器,类似Servlet(例如Struts和Spring);也可能实现为“只使用一次”的command实例(例如WebWork)。
请求驱动的Web MVC框架的设计模型通常包括六种类型的对象。在一些框架中有些对象同时扮演了几个角色:
A:控制器(controller):它是由框架调用的组件,负责处理HTTP请求,并确定一个要呈现的视图。
B:拦截器(interceptor):它是由框架调用的组件......
C:command或form:它是根据请求参数组装的JavaBean,
可用作中间层业务对象的方法参数。如果是只使用一次(只在一次请求范围内有效)的对象,则通常称为command对象;如果表示可重复提交的表单,则称为form对象。
D:验证器(validator):用于验证command/form对象,如果发现错误,则生成验证错误对象,交给视图显示。验证可以针对整个对象,也可以针对特定的字段。
E:验证错误收集器(validation errors holder):收集验证错误,并将其暴露给视图去显示。验证过程可能是编程实现的,也可能是由框架特有的JSP标签进行的。
F:模型(Model):由控制器曝露给视图的一个或多个JavaBean,表示控制器和视图之间的数据约定。
G:视图引用(view reference):可能是一个符号名称、一个资源URL、或一个真实的视图对象。控制器返回视图引用,由框架进行渲染。
3、事件驱动(event-driven)的Web MVC框架
Tapestry和JSF