to:sam_java

iceant 02-10-25

昨晚想贴的,但是发现贴不了 ^_^
=====================================
ps 1.2 的记不得了, 1.3 的还记得一点。
我只说说 1.3 的大体,其它的看你自已。

1.3 比 1.2 的结构要更清晰, View 和 Logic 都分离得很好。
View(*.screen) 是由TemplateServlet 来处理.
Logic(*.do) 是由 MainServlet 来处理

RequestProcessor 是请求分发器。把接收到的请求分发给在
Mapping.xml 里注册的 HTMLAction.
HTMLAction 接受到请求后产生 Event (这要你自已写)
然后 RequestProcessor 会将 Event 委托给WebController 来处理
WebController 会将 Event 传递给 EJBController.
EJBController 再交给具体的事务处理者 - EJBAction(在mapping.xml里
配)来处理

EJBAction 处理完请求后,将 EventResponse(ER) 返回给HTMLAction.
这条路径是这样的:
ER -> EJBController -> WebController -> RequestProcessor->HTMLAction
HTMLAction按照返回的信息再处理一些显示的准备工作,
然后 MainServlet 接管过控制权,交给 ScreenManager 来显示下一个页面在(Mappings.xml里有配)。
到此,一个*.do的请求结束。

*.screen的和FlowHandler的东东,你要自已看了,总要付出点时间的!

sam_java
2002-10-26 11:45

非常感谢前辈的指导!我还有个疑问:
我正在看112,不知是否应该看1.3?还是说两个结构完全不同,都应该看看?
谢谢!

iceant
2002-10-27 10:24

结构有所改变,不过大致思想没变.

建议你还是花点时间看看 SUN ONE Application Framework (JATO)
但是只能拿到 1.2.1 的代码, 1.2.2 以后的版本 (1.2.2 和 2.0)
就只能拿到 bin 包了.

我现在正在用它做一个项目,非常顺手.

我也在学习中~_~

banq
2002-10-27 17:40

iceant 兄说得不错,我感觉event是 web层和EJb层之间的 联系纽带,现在我有一个疑惑,webcontroll把event传给EjbController,那么具体的OrderEJBAction是如何被激活的?在statemachine中吗?好像这里面有点绕,不知你有否清晰的思路?

iceant
2002-10-27 19:40

是的, EJBAction 是在 StateMachine 里激活的。
这里有几个设计模式的应用:
RequestProcessor -> WebController 是 Service Locator 模式
WebController -> EJBController 是 Facade
EJBController -> StateMachine -> EJBAction 是 Command

是不是可以把 StateMachine 去掉? 可以,但是这样做显得设计杂乱.
OO 设计里强调,当你觉得有个地方很 dirty 的时候,就可以试试加一个层. StateMachine 在这里起到了一种承上启下的作用.有它,就显得线路更清晰

2Go 1 2 下一页