J2EE
五层逻辑模型和常见
Framework
————————————————
|
客户端层
|
用户交互,
UI
实现
| Browser,WirelessDevice,WebService | Http, Soap
协议
(SOP
体系
)
————————————————
————————————————
|
表现层
|
集中登录,会话管理
| Struts,Jsf,Webwork,Tapstry, Velocity |
内容创建,格式,传送
————————————————
————————————————
|
业务服务层
|
业务逻辑
,
事务
,
数据
,
服务
| SessionEJB
,
Spring
,
Jdoframework) | SessionEjb
,
POJO Service
————————————————
————————————————
|
集中层
|
资源适配器,遗留
/
外部系统
|Jms,Jdbc,Connnector,External Service |
规则引擎,工作流
————————————————
(
持久化
EntityBean,Hibernate,iBatis,Jdo,Dao,TopLink etc.)
————————————————
|
资源层
|
资源,数据库,外部服务
| DataBase,Resource,External Service | (
大型主机,
B2B
集中系统
)
————————————————
当然一个常见典型的
J2EE
系统可能是这样的
客户端
——
表现层
——
业务层
——
持久层
——
数据库
FireFox + Velocity + Struts + Spring + Hibernate + MySql + Tomcat + Eclipse
我比较习惯用开源产品。强烈支持开源
!! *.*
作为一个程序员,常常打交道的是中间层
(
表现层,业务层,集成层
)
。
每个层常用的技术简单的介绍如下:
表现层
(Present Tier)
Intercepting Filter ——
用于对请求的预处理和后处理
拦截过滤器拦截输入的请求和输出的响应,并加入了一个过滤器。
Filter
可以通过配置加入和取消
(
象在
web.xml
中加入
ServletFilter)
,这样多个过滤器还可以不冲突地组合使用。当预处理以及
/
或者
(filter
虽然后
response
参数,但有时候
filter
不做处理
)
后处理完成后,这组过滤器种的最后一个把控制器交给原来的目标对象。对于
request
来说,这个目标对象通常是前端控制器,但也可能是一个视图。在
Struts
中,
Action
的执行方法中参数由
request, response, actionMapping,actionForm
等等组成。而在
Webwork
中,
Action
不用去依赖于任何
Web
容器,不用和那些
JavaServlet
复杂的请求(
Request
)、响应
(Response)
关联在一起。对请求(
Request
)的参数
(Param)
,可以使用拦截器框架自动调用一些
get()
和
set()
方法设置到对应的
Action
的字段中。所以
Action
的
excute()
方法没有任何参数,也不存在
FormBean
。正是这种拦截器,使得
Action
变得非常简单,
Action
不用继承
servlet
,不依赖
servlet
容器,实现了请求响应与
Action
之间的解耦,而且可以很方便的在
action
中不依赖
web
容器进行单元测试。
Front Controller ——
集中控制请求处理
前端控制器是一个容器,用来装载表现层的共同处理逻辑
(
如果不采用这个控制器,逻辑代码就会错误的放在视图里
)
。控制器负责处理请求,进行内容的获取,安全性,视图管理,导航等操作,并委派一个分配器组件分派视图。
Application Controller ——
实现操作和视图管理的集中化,模块化
应用控制器集中了控制,数据获取,视图和命令处理的调用。前端控制器为输入的请求提供了一个集中的访问点和控制器,而应用控制器则负责找出并调用命令,并且还要找出并分派视图。比如
Struts
中的
ActionServlet,Webwork
种的
ServletDispatcher
等。
posted on 2006-11-16 13:18
Sun River 阅读(189)
评论(0) 编辑 收藏