(2)中间层:其包含Web服务器层和应用服务器层。①Web服务器层:Web服务器是J2EE体系结构中间层的一个重要组成部分。它在技术上主要是Servlet、JSP以及
JavaBean,功能上实现了用户界面的表现。运行在Web层中的Web组件依赖Web容器来支持诸如响应客户请求以及
查询EJB组件等功能。②应用服务器层:J2EE使用EJB服务器作为EJB组件的部署环境,在EJB服务器中提供了分布式计算中组件需要的所有服务,例如组件生命周期的管理、数据库连接的管理、分布式事务管理、组件的命名服务、自动容错以及负载的自动均衡能力等。实现业务逻辑的EJB组件可以高效地运行在EJB服务器中支持多客户端的访问。客户端可先向运行在Web服务器上的Servlet发出请求,通过Servlet调用运行在EJB服务器中的EJB组件,以实现复杂的业务逻辑。本销售系统采用BEAWeblogic8.1作为应用服务器。
(3)数据库层:数据库层分布于系统中的数据库服务器上,它存储着销售系统中的业务信息以及包括用户权限等控制信息,如销售机构信息、供应商信息、库存信息等。本系统数据库
管理系统采用关系型数据库(DBMS)MYSQL。J2EE的核心技术是EJB组件结构,如图4所示,在本销售系统中采用EJB技术进行销售系统中间层的业务逻辑开发,它可以带来如下好处:开发人员不用考虑诸如事务
4
处理、安全性及线程控制等系统级服务,这些服务都由EJB服务器提供。编写的EJB组件可以部署到网络中不同的EJB服务器中,并且能与CORBA、DCOM等其它类型的组件相交互。使用Java语言编写的EJB组件还具有良好的跨平台性,有利于系统的集成,真正实现了销售系统的分布特性。当销售系统出现新的需求时,开发者可以根据新的需求,编写新的EJB组件以实现新的商务逻辑,再将其组装到原系统中,而并不需要对原系统的核心部分进行修改,有利于系统的扩展。
MVC如何
工作 MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。视图视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括MacromediaFlash和象XHTML,XML/XSL,WML等一些标识语言和Webservices.如何处理应用程序的界面变
得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员
列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。模型模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusionComponents这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。控制器控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视
5
图来显示返回的数据。
为什么要使用MVC
大部分Web应用程序都是用像ASP,
PHP,或者CFML这样的过程化(自PHP5.0版本后已全面支持面向对象模型)语言来创建的。它们将像数据库查询语句这样的数据层代码和像HTML这样的表示层代码混在一起。经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,它需要精心的计划和不断的尝试。MVC从根本上强制性的将它们分开。尽管构造MVC应用程序需要一些额外的工作,但是它给我们带来的好处是毋庸置疑的。
首先,最重要的一点是多个视图能共享一个模型,现在需要用越来越多的方式来访问你的应用程序。对此,其中一个解决之道是使用MVC,无论你的用户想要Flash界面或是WAP界面;用一个模型就能处理它们。由于你已经将数据和业务规则从表示层分开,所以你可以最大化的重用你的代码了。
由于模型返回的数据没有进行格式化,所以同样的构件能被不同界面使用。例如,很多数据可能用HTML来表示,但是它们也有可能要用AdobeFlash和WAP来表示。模型也有状态管理和数据持久性处理的功能,例如,基于会话的购物车和电子商务过程也能被Flash网站或者无线联网的应用程序所重用。