免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4700 | 回复: 1
打印 上一主题 下一主题

展示层的应用程序设计架构 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-01-20 14:33 |只看该作者 |倒序浏览
展示层的应用程序设计架构


在Web服务器启动时,ActionServlet将进行初始化工作,读取配置文件(struts-config.xml),为不同的Struts模块初始化相应的ModuleConfig对象。比如配置文件中的Action映射定义都保存在ActionConfig集合中。相应地有ControlConfig集合、FormBeanConfig集合、ForwardConfig集合和MessageResourcesConfig集合等。以下是客户端从发出请求到获得响应整个过程的图解说明。
客户的浏览器向Struts应用发出请求。
1) ActionServlet接受请求,并调用RequestProcessor中的process()方法。
2) RequestProcessor从ActionConfig中找出对应于该请求的Action子类,如果没有对应的Action,控制器直接将请求转发给JSP或者静态页面。否则控制器将请求分发至具体Action类进行处理。
3) 在RequestProcessor调用具体Action的execute方法之前,ActionForm对象将利用HTTP请求中的参数来填充自己(可选步骤,需要在配置文件中指定)。具体的ActionForm对象应该是ActionForm的子类对象,它其实就是一个JavaBean。此外,还可以在ActionForm类中调用validate方法来检查请求参数的合法性,并且可以返回一个包含所有错误信息的ActionErrors对象。如果执行成功,ActionForm自动将这些参数信息以JavaBean(一般称之为form bean)的方式保存在Servlet Context中,这样它们就可以被其它Action对象或者JSP调用。Struts将这些ActionForm的配置信息都放在FormBeanConfig集合中,通过它们Struts能够知道针对某个客户请求是否需要创建相应的ActionForm实例。
4) RequestProcessor调用具体Action的execute方法。
5) Action只负责完成与控制有关的功能。Action的execute方法将会调用Business Delegate 中的业务方法去执行相应的业务逻辑。
6) Business Delegate使用ServiceLocator,获得模型中的Session Facade 远程接口。
7) Business Delegate调用Session Facade的业务方法。
Business Delegate 获得Session Facade在执行业务方法后所返回的Transfer Object。
9) Action 获得 Business Delegate 所返回的Transfer Object。
10) Action 把所获得的Transfer Object对象保存到ActionForm中。
11) 完成保存Transfer Object对象后,Action将创建所对应的ActionForward对象。
12) Action返回所创建的ActionForward对象给予Request Processor。
13) Request Processor根据ActionForward中的路径,转发到下一个JSP或Action。
14) JSP从ActionFrom 中取得显示的数据,创建视图。
15) 客户获得响应。

论坛徽章:
4
CU十二周年纪念徽章
日期:2013-10-24 15:41:34摩羯座
日期:2013-12-24 13:05:332015亚冠之西悉尼流浪者
日期:2015-10-09 16:03:47fulanqi
日期:2016-06-17 17:54:25
2 [报告]
发表于 2012-02-23 14:17 |只看该作者
你这是对MVC一个交互过程的说明,这么看挺累的,如果用UML就不一样了~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP