对一个Java FrameWork的分析(一)

来源:互联网 发布:js用单引号还是双引号 编辑:程序博客网 时间:2024/04/30 13:04

对一个Java FrameWork的分析(一)

http://blog.csdn.net/xlhacoo/archive/2004/07/04/33644.aspx

 

最近在做的一个项目,使用的一个Java FrameWork感觉上对于大型项目非常适用,现在就本人的一点使用经验和几个月来对这个FrameWork的了解,概括的向大家介绍一下这个FrameWork。

整个FrameWork使用J2EE技术,其实核心思想还是MVC,目前来说使用MVC思想的FrameWork非常多,最流行的应该是Apache公司推出的Struts,但是Struts整体只分三层:View、Controller、Model,这是完全符合MVC思想的一个FrameWork。其实Struts使用到现在反映很好,许多大中型项目都在用它,譬如一些大型的ERP项目也在使用它,但是我个人觉得Struts对于整个应用程序体系来说还不是很清晰,也就是说虽然它使用MVC思想,也明确了MVC的一些体系结构,实现了View、Controller、Model这三层,但是在一些具体的细节上还是比较模糊的,就拿Struts的Action来说,Action里面包含了太多的业务逻辑,使得整个应用程序思路不是很清晰。那有没有更清晰的FrameWork能够弥补这个缺陷呢?

我们可以把View、Controller、Model这三层分的更细,分成五层,如下图:


图1HP FrameWork的五层结构

1、  Presentation这一层主要是负责View这一层,也就是说这一层主要是和客户打交道,所有的Client管理都在这一层。(关于详细分析见后)

2、  Application这一层主要分成两层:HtmlAction、EJBAction,HtmlAction是简单的处理Client传递过来的数据,然后把处理后的数据通过一个Event包装传递给EJBAction,EJBAction再调用ServiceBean的方法处理业务逻辑,然后把返回Client的数据再原路返回到Client。在这一层要抛出很多的Exception,保证传到ServiceBean里的数据是正确的。(关于详细分析见后)

3、  Services 这一层包含了整个应用程序的业务逻辑,也就是说所有的数据从EJBAction传递过来后,只是正确的数据,但是否是有效的数据,还得在ServiceBean里进行处理,ServiceBean对业务数据的处理后若要对数据库存储数据则要调用EntityBean,若只是查询数据则调用DAO方法。(关于详细分析见后)

4、  Domain这一层主要是EntityBean。(关于详细分析见后)

5、  Persistence 这一层是主要与数据库进行交互的一层,所有的数据增删改或存储过程都在这一层实现。(关于详细分析见后)

1.1 Presentation层

   这一层是view层,主要使用了JSTL、JavaScript、Html等技术,其实对于B/S结构的应用程序开发,Client开发使用这三种语言就绰绰有余了,足以应付所有的需求。

  JSTL是Sun公司开发的标签库,比起在JSP页面中使用Java语言,JSTL使得程序简单可读性增强,这对应用程序的维护提供了方便性。

在Jar包库里必须引入jstl.jar包

在程序中我们只要引入上面那两条标签库就可以使JSP支持JSTL标签库了。

在程序中WEB模块的目录结构如图所示:

所有的JSP页面按模块放好,所有的web模块所需要的东西都在docroot目录下:

很多的XML配置文件都放在docroot/web-inf目录下,对于客户端的一个JSP页面就是一个Screen,必须在screendefinitions_en_US.xml文件中,所有的*.do跳转都必须定义在Mapping.xml文件里具体的定义见下图。

这是定义的Screen文件:

定义的*.do文件:

 

所有的WEB层的需要的东西,如上所说,下面分析Application层。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xlhacoo/archive/2004/07/04/33644.aspx

原创粉丝点击