⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0021.htm

📁 关于java的开发文档
💻 HTM
📖 第 1 页 / 共 2 页
字号:
一旦制订了使应用程序国际化的细节,我们就可以决定用什么来实现它了。总体来说,一个基于Web 的应用程序使用HTML 来显示数据; 用XML 来定义数据以使其可被另一个程序读取并处理; 使用JSP 页面或servlets 来管理用户与业务层或存储层之间的数据流。<br>
可以在J2EE 平台上实现的基于Web 的应用程序有四种。从简单到复杂排列,它们是 :<br>
˙基本HTML<br>
˙带基本JSP 页面或servlets 的HTML<br>
˙带JavaBean 类的JSP 页 面<br>
˙将应用逻辑根据功能划分成区域的高度结构化的应 用<br>
当设计一个基于Web 的应用程序时,需要决定用什么来建立它。并且,如果我们是从建立一个简单的应用程序开始着手的话,如果认为以后会给该应用程序添加功能,那么,设计应当适应今后发展的需要。下面的内容通过比较JSP 页面和servlets ,来帮助我们做出某些设计决定。<br>
<br>
Servlets 和JSP 页面<br>
Servlets 是实现动态内容的一种简便的、平台独立的、Web 服务器独立的方式。JSP 页面是开发servlets 的一种基于文本的、以显示为中心的方式。JSP 页面提供了servlets 的所有好处,并且,当与一个JavaBeans 类结合在一起时,提供了一种使内容和显示逻辑分开的简单方式。分开内容和显示逻辑的好处是,更新页面外观的人员不必懂得Java 代码,而更新JavaBeans类的人员也不必是设计网页的行家里手。JSP 页面和servlets 都比公共网关接口(CGI )更可取,因为CGI 不是平台独立的,使用了更多系统开销,而且没有一个简单的方法来访问参数数据,并将这些数据发送给一个程序 。可以用带JavaBeans 类的JSP 页面来定义Web 模板,以建立一个由具有相似的外观的页面组成的网站。JavaBeans 类完成数据提供,这样在模板中就没有Java 代码,这意味着这些模板可以由一个HTML 编写人员来维护。<br>
在选择使用一个servlet ,还是一个JSP 页面时,要记住的是,servlets 是一个程序设计工具,它最适用于不需要频繁修改的低级应用功能; 而JSP 页面则通过以显示为中心的描述性的方法将动态内容和逻辑结合在一起 。<br>
对于一个使用一个JSP 页面的简单的基于Web 的应用程序,我们可以使用定制标记或者scriptlets ,而不是使用JavaBeans 类来将内容与应用逻辑结合起来。定制标记被打包到一个标记库中,并被引入到一个JSP 页面中。Scriptlets 是直接嵌入在JSP 页面中的很小的Java代码段。<br>
<br>
模型、视图和控制器架构(Model, View, Controller Architecture )<br>
在基于组件的J2EE 平台充分内置了灵活性的情况下,剩下的问题可能是如何组织应用程序以实现简单高效的应用程序升级和维护,以及如何让不懂程序代码的人员避开程序数据。答案就在模型、视图和控制架构(MVC )的使用之中。MVC 这样的架构是一个描述重现的问题及其解决方案的设计范式,但问题每次重现时,解决方案都不是完全相同。<br>
<br>
MVC 设计范式包括三种对象:<br>
模型(model )提供应用业务逻辑(enterprise bean 类); 视图(view )则是其在屏幕上的显示(HTML 页面、JSP 页面、Swing GUI ); 控制器则是servlet 、JavaBean 或session bean 类,它用于管理用户与视图发生的交互。我们可以将控制器想象成处在视图和数据之间,对视图如何与模型交互进行管理 。<br>
通过使视图完全独立于控制器和模型,就可以轻松替换前端客户程序。并且,通过将控制器和模型代码保持在视图之外,那些不理解这些代码的人员就不能改变他们不应改变的东西。<br>
将控制器和模型分开可以在不影响模型的情况下改变控制器,也可以在不影响控制器的情况下改变模型 。<br>
例如,如果应用的前端是一个HTML 页面,一个HTML 专家就可以更新它。如果使用一个JSP 页面,将控制器的代码放到一个JavaBean 或session bean 类中,或使用动作标记(action tags ),这样,JSP 页面就仅包含JSP 代码了 。<br>
J2EE 应用程序中的应用程序中的应用程序中的应用程序中的Enterprise Beans<br>
当编写管理特定业务功能(比如追踪雇员资料或进行复杂财务计算)的J2EE 应用程序时,请将完成这些任务的业务逻辑放置在EJB 层的enterprise beans 中。以这种方式,我们就可以使代码集中在解决手边的业务问题,而利用enterprise bean 容器来支持低层服务,比如状态管理、事务管理、线程管理、远程数据访问和安全等。<br>
将业务逻辑与低层系统逻辑分开意味着容器可以在运行时创建和管理enterprise bean 。 按照规范编写的任何enterprise bean ,都可以根据其在一个特定的J2EE 应用程序中将被如何使用来对其事务管理或安全属性进行配置,并可以被部署到任何一个与规范兼容的容器中。可再用组件使不必改变和重新编译enterprise bean 代码成为可能 。<br>
一个enterprise bean 由接口和类组成。客户程序通过enterprise bean 的home 和远程接口来访问enterprise bean 的方法。Home 接口提供了创建、删除和定位enterprise bean 的方法,而远程接口则提供了业务方法。在部署时,容器由这些接口来创建类,使客户能够创建、删除、定位或调用位于enterprise bean 上的业务方法。enterprise bean 类提供了业务方法、创建方法和查寻方法的实现。如果enterprise bean 管理它自己的持久性的话,还为其生命期方法提供了实现。<br>
有两种Enterprise beans :entity beans 和session beans 。<br>
一个session bean 代表与客户程序的一个短暂的会话,而且可能执行数据库读写操作。一个session bean 可能会自己调用JDBC ,或者它可能使用entity bean 来完成此种调用。在后者这种情况下,这个session bean 是该entity bean 的客户。一个session bean 的域包含会话状态,而且是短暂的。如果服务器或者客户程序崩溃,该session bean 就丢失了。这种模式通常被用于像PL/SQL 这样的数据库程序设计语言上 。<br>
一个entity bean 代表一个数据库中的数据及作用于该数据的方法。在一个关系型数据库中的雇员信息表中,每一行都有一个bean 来代表。entity beans 是事务的,并且是长寿命的。只要数据留在数据库中,entity bean 就存在。这个模式可以被很容易地用于关系型数据库,而不仅限于对象数据库。<br>
Session beans 可以是有状态的,也可以是无状态的。一个有状态的session bean 包含代表客户程序的会话状态。该会话状态是该session bean 实例的域值加上这些域值所引用到的所有对象。有状态session beans 并不代表在一个持久数据存储中的数据,但是,它可以代表客户程序访问和更新数据。<br>
无状态session beans 没有用于某个特定客户程序的任何状态信息。它们通常被用于提供不保持任何特定状态的服务器端行为。无状态session beans 要求更少的系统资源。一个提供一种一般服务,或用于表示被存储的数据的一个被共享的视图的业务对象是无状态session bean的一个例子 。<br>
因为enterprise beans 占用可观的系统资源和带宽,可能希望将某些业务对象构造成数据访问对象或值对象。数据访问对象完成诸如代表客户程序访问数据库等工作。值对象用于代表容纳数据字段并提供简单的“get 和set ”方法来访问这些数据的一个结构 。<br>
另外,可以将程序构造成使用enterprise bean 在客户和EJB 层的其它部分之间承担通信的任务 。<br>
一个使用容器管理的持久性来访问一个关系型数据库的enterprise bean ,并不要求在bean 的代码中使用任何JDBC 2.0 API 来进行数据库访问,因为容器完成了这些工作。然而,如果使用bean 管理的持久性,或者我们要访问一个非关系型数据库的企业信息系统,那么我们就必须在bean 中提供相应的代码来完成这些工作 。<br>
在一个enterprise bean 使用bean 管理的持久性来访问一个数据库的情况下,必须使用JDBC 2.0 API 代码来实现该enterprise bean 的生命期方法,以便处理数据的加载和存储,以及在运行时系统和持久数据存储之间维持数据的一致性。<br>
一个使用bean 管理的持久性的enterprise bean ,或一个需要访问企业信息系统的Web 组件必须提供合适的代码。这些代码可能是用于进行数据库访问的JDBC 2.0 API ;或是用于访问一个特定企业信息系统的企业信息系统API ;或是用于抽象企业信息系统API 的复杂性和低层细节的一个访问对象,或是用于访问企业信息系统资源的一个连接对象。<br>
尽管Web 层使用HTTP 或HTTPS 来在各层之间传输数据,但是,EJB 层使用的是RMI-IIOP 。RMI-IIOP 是一个完整的分布式计算协议,能让任何访问一个enterprise bean 的客户层程序或Web 层程序直接访问EJB 层的服务。这些服务包括用于查找和引用enterprise beans 的JNDI ,发送和接收异步消息的Java Message Service (JMS ),以及用于关系型数据库访问的JDBC 。<br>
<br>
宠物商店应用程序(Pet Store Application )<br>
《设计企业应用程序》这本书的第10 章将J2EE 应用编程模型应用到一个宠物商店示例应用程序上。您可以从java.sun.com 网站的下载页面下载该演示版,并且您会在该下载的顶层目录中找到配置和安装指导 。<br>
在第10 章,我们从规范制定和设计阶段到实现,再到指定安全和事务属性的装配和部署阶段,对应用的开发过程进行了描述。第10 章的第一节描述了应用的情景,然后进一步讨论了架构、功能的划分、向各层分配功能以及在各层中分解对象。<br>
Monica Pawlan 是JDC 写作队伍的成员。她拥有2D 及3D 图形技术、安全以及数据库产品的背景,喜爱探索新兴技术 。<br>
Date Jun 2000<br>
Global Empower<br>
环 球 联 动<br>
www.globalempower.com

  </table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -