首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>编程开发>java>J2EE>正文

进阶-当前流行的J2EE WEB应用架构分析

http://www.oklinux.cn  2008-01-20  来源: 赛迪网 xuyy_cn  会员收藏  游客收藏  【 】 


它保存了HTTP post请求传来的数据,在Struts里,所有的Form beans都是 ActionFrom 类的子类。

业务逻辑beans

专门用来处理业务逻辑。

系统状态beans

它保存了跨越多个HTTP 请求的单个客户的会话信息,还有系统状态。

2.1.1.3. 视图


控制组件续传HTTP请求给实现了视图的JSP文件。JSP能访问beans 并生成结果文档反馈到客户。Struts提供JSP 标签库: Html,Bean,Logic,Template等来达到这个目的,并有利于分开表现逻辑和程序逻辑。


2.1.2. Struts的细节分析


2.1.2.1. 视图-控制-模型


用户发出一个*.do的HTTP请求,控制组件接收到这个请求后,查找针对这个请求的动作映射,再检查是否曾创建过相应的动作对象(action实例),假如没有则调用actionmapping生成一个动作对象,控制组件会保存这个动作对象供以后使用。接着调用actionmapping的方法得到actionForm对象。之后把actionForm作为参数传给动作对象的perform方法,这个方法结束之后会返回给控制组件一个 actionforward对象。控制组件接着从这个对象中获取下一个视图的路径和重定向属性。假如为重定向则调用HTTPSERVLETREPONSE的方法来显示下一个视图,否则相继调用requestdispatcher, SERVLETcontext的方法续传HTTP请求到下一个视图。


当动作对象运行perform方法时,可能出现错误信息。动作对象可以保存这些错误信息到一个error对象中,接着调用自身的saveerrors方法把这个错误保存到request对象的属性中。接着动作对象调用actionmapping对象的getInput方法从动作映射中获取input参数,也就是产生输入的视图,并以这个input为参数生成一个actionforward对象返回。这个input参数的JSP中一般有HTTP:errors定制标签读取这些错误信息并显示在页面上。


2.1.2.2. 模型到视图


模型到视图指视图在显示之前装载系统数据到视图的过程。系统数据一般为模型内java bean的信息。示意图表现了由控制组件forward过来的有html:form定制标签的JSP 的处理逻辑。


html:form定制标签处理对象从application scope(通过查询SERVLETCONTEXT对象的属性来实现)获取先前由控制组件actionSERVLET放在那里的动作映射等对象,由html:form 的action属性查得actionform名字、类型和范围等信息,在相应的范围内查找actionform,假如有则利用它的信息填充html form表单[实际填充动作在嵌套的html:text等定制标签的处理对象中]。否则在相应范围内创建一个actionform 对象。


2.1.3. 优缺点


优点:


一些开发商开始采用并推广这个框架

作为开源项目,有很多先进的实现思想

对大型的应用支持的较好

有集中的网页导航定义

缺点:


不是业届标准

对开发工具的支持不够

复杂的taglib,需要比较长的时间来把握

html form 和 actionform的搭配比较封闭,但这也是它的精华所在。

修改建议

把actionform属性的设置器和访问器修改成读取或生成xml文档的方法,然后 html form和actionform之间用xml文档进行数据交换,使之松散耦合,适应数据结构易变化的应用。


2.2. JATO


JATO应用程序框架是iPlanet 应用程序框架的旧名。它是一个成熟的、强大的,基于J2EE标准的面向于开发WEB应用程序的应用框架。结合了显示字段、应用程序事件、组件层次和以页面为中心的开发方法、以及MVC和服务到工作者service-to-workers的设计模式等概念。JATO可适用于中、大、超大规模的WEB应用。但是它也不是一个企业层的应用框架,也就是说它不会直接提供创建EJB, WEB services等企业层组件的方法,但用它可以构造出访问企业层组件的客户应用。


这个框架功能主要有三部分组成:


iPlanet应用框架核心;

iPlanet应用框架组件;

iPlanet应用框架扩展。

应用框架核心定义了基本接口、对象协议、简单组件,以及iPlanet应用框架程序的最小核心。包括视图简单组件、模型简单组件、请求分发组件和可重用命令对象。iPlanet应用框架组件利用框架核心定义的基本接口、协议和组件向开发者提供高层的重用组件,这些组件既有与特定视觉效果无关的水平组件,同时也有适应特定实用环境、提高可用性而特意提供的垂直型组件。框架扩展实现了用框架相容的方法访问非J2EE环境的方法。通常情况下,扩展被框架应用程序用来无缝访问J2EE容器特定功能。JATO平台栈图很清楚地表达了这个情况。


JATO最大的威力在:对于快速开发用户,你能利用框架组件和扩展提高生产率,对于要求更大灵活性的用户,你能实现框架核心提供的接口来保持应用的框架兼容性。

此图表示实现一个JATO应用程序,可以简单地实现控制组件module1Servlet,视图组件ListCustomersViewBean和模型组件CustomersModuleImpl,以及一个给客户代理显示界面的ListCustomers.jsp文件。并清楚地表明这些组件与JATO框架组件的继续关系。


JATO标签库提供了VIEW对象与JSP文件的接口。库中标签处理程序负责实现VIEW对象和JSP产生地客户端文档的信息同步和交换。这个图清楚地表达了这种对应关系


2.2.1. MVC分析


前端控制组件接收用户发来的任何请求,这个可在WEB.xml中指定请求分发组件负责视图治理和导航,和前端控制组件封装在ApplicationSERVLETBase一起实现。应用程序开发者需要为每一个子系统(人力资源,财务,CRM等)实现一个此类的继续。


请求分发组件分发请求给工作者,工作者实现了command接口。应用开发者可以实现这个接口。JATO提供了一个缺省实现:DefaultRequestHandingCommand,这个实现会把请求传给视图组件的特定事件。


组合视图是指视图组件在显示给用户时的层次关系:根视图是一个ViewBean类的对象字段是一个DisplayField类的对象,容器视图是一个ContainerView类的对象。视图组件类的层次关系如下图:


2.2.2. 优缺点分析


优点:


这种框架的适应范围大,即提供了底层接口,也有立即可用的组件

具有与客户端RAD开发工具相似的开发概念如页为中心(等同于VB的FORM),事件处理等.

对大型的应用支持较好
共3页: 上一页 [1] 2 [3] 下一页

上一篇:高级:走近JavaEE5与Glassfish应用服务器   下一篇:Java语言深入:关于多线程程序模型研究


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Java EE/J2EE面向对象编程之道
·J2EE综合:Struts上传多个文件的例子
·J2EE综合--Java企业系统架构选择考量
·J2EE基础:分析J2EE架构的6个最佳实践
·进阶--开发J2EE应用应遵循的几点原则
·J2EE综合:关于Config参数和Context参数
·高级:Java/J2EE中文问题终极解决之道
·J2EE综合--Hibernate的事务处理机制
·J2EE综合--分析Hibernate的缓存机制
·J2EE基础:J2EE开发之常用开源项目介绍
·J2EE综合--业务逻辑和数据库访问决策
·J2EE基础:Java的中文编程与配置心得
·J2EE综合:谈谈Java Web开发的学习路径
·J2EE框架:Spring框架的事务管理及应用
·J2EE综合--Struts常见错误的全面汇总
·J2EE综合:看JAVA设计模式之事务处理
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·一个用JAVA写的测算服务器响应速度程序
·软件测试:软件测试的基础知识概要介绍
·J2EE综合--浅析Java程序员的存储过程
·J2EE综合:业务逻辑和数据库的访问决策
·J2EE综合:关于Java EJB容器存取和实现
·J2EE综合--Java企业系统架构的选择考量
·J2EE综合--java语言不一定就跨平台
·J2EE综合--对Struts中常见错误的汇总
·J2EE综合:开发J2EE应用应遵循的几点原
·J2EE综合:Java EE/J2EE面向对象编程之
·提高J2EE层与数据库层交互操作能力的优
·开发J2EE应用时应该遵循的几个基本准则
  阅读排行
·对J2EE开发中常用开源项目的介绍
·J2EE综合--关于权限设计的详细探讨
·J2EE--关于JAVA的分页查询操作技术
·J2EE综合--Java企业系统架构选择考量
·J2EE基础:j2ee所包含的13种核心技术
·J2EE基础:在Struts 2中实现文件上传
·J2EE综合:Struts上传多个文件的例子
·J2EE综合--业务逻辑和数据库访问决策
·J2EE综合--浅谈Java程序员的存储过程
·与你共同分享12个最重要的J2EE最佳实践
·J2EE综合--JAVA开发工具安装配置心得
·J2EE综合--总结java编程中的经验教训
·J2EE综合--Java EJB容器的存取和实现
·J2EE综合:谈谈Java Web开发的学习路径
·[J2EE] JNDI定义Oracle数据源的方法
网摘收藏: