网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.AOP在大规模软件开发项目中应用的.
.Eclipse下实现软件项目的源码管理.
.JDBC和Hibernate来写入Blob型数据.
.访问JAR和JAD文件中的属性.
.Web 服务代理组件创建 JSF Web 服.
.Eclipse插件开发之新手入门.
.为 Web 服务构建 Struts 应用程序.
.使用BINCompiler转换游戏资源文件.
.java中按字节截取String字符串..
.Add 方法 (Dictionary).
.我的Java开发之路.
.在JBoss中配置多个数据库和数据源.
.JDBC连接RAC的配置源代码剖析.
.用CashFilter实现页面级缓存实践.
.利用 Oracle DMS 测量 Java 应用.
.如何使用AOP编程减少升级的风险(.
.Ant+JMeter进行Web应用的稳定性测.
.使用Hibernate进行对象的关系映射.
.Java继承的一个实例.
.一个JDBC-ODBC桥的字符集参数的.

J2EE开发n层应用

发表日期:2008-1-5



  摘要:在这篇文章中,我们将介绍13种J2EE(Java 2平台企业版)的核心技术:JDBC,JNDI,EJBs,RMI,jsp,Java servlets,XML,JMS,Java IDL,JTS,JTA,JavaMail和JAF。为了更好地说明这些技术在实际中的应用,本文将通过BEA System的WebLogic Server来介绍。
  Java起初是运用在浏览器和客户计算机上的,当时,很多人都怀疑它是否适合用作服务端的开发。现今,随着越来越多的第三方对Java 2平台企业版(J2EE)的支持,Java已经被广泛用来开发企业级的服务器端应用。
  J2EE平台包含有一整套的服务、应用编程接口(API)和协议,可用于开发多层的基于Web的应用。
  在这篇文章中,我们将讨论构成J2EE的13种核心技术:JDBC, JNDI, EJBs, RMI, JSP, Java servlets, XML, JMS, Java IDL, JTS, JTA, JavaMail和JAF。我们将介绍每种技术适合用在哪里;我们还将介绍每种不同的技术之间是如何通信的。
  为了更好地说明J2EE在现实中的应用,我们将通过WebLogic Server来介绍其中主要的技术,WebLogic Server来自BEA Syetem,它是一个广泛使用的J2EE工具。要注重的是,这篇介绍性文章的阅读对象是对WebLogic Server和J2EE不熟悉的开发者、以及对J2EE感爱好的项目经理和商业分析者。
  分布式体系和J2EE
  以前,两层的应用--也称为客户/服务器应用是很常见的。图1表示的就是一个典型的两层体系。在一些情况下,服务器提供的唯一服务就是数据库服务。在这种情形下,客户端负责数据访问、应用商业逻辑、将结果转换为一个格式以便显示,为用户显示内部的接口,以及接受用户的输入。客户/服务器的体系在开始的时候很轻易配置,不过难于升级或者扩展,而且通常基于私有的协议--典型的是私有的数据库协议。商业和表现逻辑的重新使用也很难。在Web领域中,可能最重要的就是扩展,而两层的应用不便于升级扩展,因此不适合用在Internet。
   J2EE开发n层应用
  **图1***************
  (两层的应用体系)
  为了解决这个两层体系的不足,Sun设计了J2EE。J2EE定义了一套标准,可轻松地开发n层的企业应用。它定义了一套标准化、模块化的组件;并为这些组件提供了一整套完整的服务;以及自动处理应用行为的许多细节---例如安全和多线程。
  使用J2EE来开发n层的应用,要将原来的2层体系细分为多个不同的层。一个n层的应用能够为以下的每个服务提供独立的层:
  表现:在一个典型的Web应用中,运行在客户机器上的浏览器负责处理表现
  动态产生表现:虽然浏览器可以处理一些动态产生的表现,不过为了支持多种不同的浏览器,大部分的动态产生都应该在Web服务器进行,通过使用JSP,servlet或者XML(Extensible Markup Language,扩展标记语言)和XSL(Extensible Stylesheet Language,扩展样式表语言)。
  商业逻辑:实现商业逻辑的最佳方法是通过Session EJB(下文将会提及)。
  数据访问:实现数据访问的最佳方法是在Entity EJB(下文将会提及),以及使用JDBC。
  Backend系统集成:可使用各种不同的技术来与backend系统集成。最佳的选择在于backend系统的确切种类。
  你也许会问:为什么要这么多层呢?这是由于分层的方法可得到一个更便于扩展的企业应用。它可让每个层集中在一个特定的角色上--例如,让一个Web服务器提供网页服务,一个应用服务器来提供给用服务,以及一个数据库服务器来提供数据库服务。
  由于J2EE构建在Java 2平台标准版本上(J2SE),因此它可提供与J2SE一样的所有优点和特色。包括有“写一次,到处运行”的便利、用作数据库访问的JDBC,与现有企业资源交互的CORBA技术,以及一个经过验证的安全模型。在这个基础上,J2EE还加入了对企业JavaBean(EJB)组件、Java servlets, JavaServer Pages (JSPs)和XML技术的支持。
  WebLogic Server的分布式体系
  J2EE提供了一个框架--一个标准的API--用作开发分布式的体系。实现这个框架的引擎工具留给第三方厂商完成。一些厂商将着重于实现J2EE体系中的某些组件。例如,Apache的Tomcat为JSP和servlet提供支持。BEA System通过它的WebLogic Server产品实现了J2EE的全部特性。
  通过提供J2EE规范的一个完整实现,WebLogic Server可用来建立及配置易于扩展和分布式的应用。WebLogic Server和J2EE为你处理一些常见的编程任务。包括有提供事务服务,安全领域、认证信息、命名和目录服务、数据库访问和连接池、线程池、负载均衡和容错。
  通过以一种易于使用和标准的方式提供这些常见的服务,类似WebLogic Server的产品可提供更富扩展性和便于维护的应用。结果是可为大量的用户提供可用性更强的应用。
  J2EE技术
  在以下的部分中,我们将讨论构成J2EE的每一种技术,并且看看WebLogic Server如何在一个分布式的应用中支持它们。最常用的J2EE技术可能是:JDBC, JNDI, EJB, JSPs和servlets,因此我们也着重讨论这些方面。
  图2表示了在一个分布式的应用中,每项J2EE技术最常用在哪里。
  ****图2************
  (n层应用体系的一个例子)
  Java数据库连接(JDBC)
  JDBC API以一个统一的方式访问各种数据库。与ODBC类似,JDBC将开发者和私有数据库之间的问题隔离开来。由于它建立在Java上,因此JDBC可以提供平台无关的数据库访问。
  JDBC定义了4种不同的驱动,具体来说,包括有:
  类型1:JDBC-ODBC桥
  在JDBC刚产生时,JDBC-ODBC桥是非常有用的。通过它,开发者可以使用JDBC来访问一个ODBC数据源。缺点是,它需要在客户机器上安装有一个ODBC驱动,该机器通常是应该运行微软Windows系统的。使用这一类的驱动器,你就会失去JDBC平台无关的好处。此外,ODBV驱动器需要客户端的治理。
  类型2:JDBC-native驱动桥
  JDBC-native驱动桥提供了一个建筑在本地数据库驱动上的JDBC接口--没有使用ODBC。JDBC驱动将标准的JDBC调用转变为对数据库API的本地调用。使用类型2的驱动也会失去JDBC平台无关性的好处,并且需要安装客户端的本地代码。
  类型3:JDBC-network桥
  JDBC-network桥不需要客户端的数据库驱动。它们使用网络-服务器中层来访问一个数据库。这会引出诸如负载均衡、连接池等技术,数据缓冲也是可能的。由于类型3的驱动通常可带来相对小的下载时间,它是平台无关的,并且不需要客户端的安装和治理,因此很适合用作Internet的应用。
  类型4:纯Java驱动
  类型4使用纯Java数据库驱动来提供直接的数据库访问。由于类型4驱动运行在客户端,并且直接访问数据库,因此运行在这个模式暗示要使用一个两层的体系。要在一个n层的体系中使用类型4的驱动,可以通过一个包含有数据访问代码的EJB,并且让该EJB为它的客户提供一个数据库无关的服务。
  WebLogic Server为一些很常用的数据库提供了JDBC驱动器,包括有Oracle、Sybase、Microsoft SQL Server, 和Informix。它还带有一个Cloudscape的JDBC驱动,这是一个纯Java DBMS,不过WebLogic Server自带的是一个评估版本。
  接着我们来看一个例子。
  JDBC例子
  在例子中,我们假设你已经在Cloudscape中设置了一个PhoneBook数据库,该数据库包含有一个CONTACT_TABLE表,里面有NAME和PHONE字段。我们首先载入Cloudscape的JDBC驱动,接着向driver manager请求获得一个到PhoneBook Cloudscape数据库的一个连接。使用这个连接,我们建立了一个Statement对象,并且使用它来执行一个简单的SQL查询。最后,循环得到结果集的所有项目,将NAME和PHONE字段的内容写入到标准的输出中。
  import java.sql.*;
  
  public class JDBCExample
  {
  public static void main( String args[] )
  {
  try
  {
  Class.forName("COM.cloudscape.core.JDBCDriver");
  Connection conn = DriverManager.getConnection("jdbc:cloudscape:PhoneBook");
  Statement stmt = conn.createStatement();
  String sql = "SELECT name, phone FROM CONTACT_TABLE ORDER BY name";
  ResultSet resultSet = stmt.executeQuery( sql );
  
  String name;
  String phone;
  while ( resultSet.next() )
  {
  name = resultSet.getString(1).trim();
  phone = resultSet.getString(2).trim();
  System.out.println( name + ", " + phone );
  }
  }
  catch ( Exception e )
  {
  // Handle exception here
  e.printStackTrace();
  }
  }
  }
  接着,我们将介绍JDBC在企业应用中的使用。
  企业应用中的JDBC
  上面的例子是很简单的。它使用的仍然是一个两层的体系。在一个n层的企业应用中,客户将与一个EJB通信,并且会进行数据库的连接。为了提高扩展性和性能,WebLogic Server提供连接池(connection pools)的支持。
  通过在服务器启动的时候建立一个数据库的连接池,连接池可减少建立和中断数据库连接时的系统开销。假如有数据库连接的需求,WebLogic Server可从池中选择一个,而不是创建一个。WebLogic Server的连接池在weblogic.properties中定义(具体可参考你的weblogic.properties中的例子和Weblogic Server中的文档)。
  另一个企业应用中经常用到的数据库特性是支持事务。事务是一组语句,不过为了保持数据的完整性,这组语句都被看成是一个单一的语句。默认的情况下,JDBC工作在自动提交(auto-commit)的事务模式。你可以使用Connection类的setAutoCommit()方法来覆盖它。
  现在我们对JDBC已经有一个了解了。接着我们将介绍JNDI。
  Java命名和目录接口(Java Naming and Directory Interface,JNDI)
  JN
上一篇:Java RMI-IIOP 入门 人气:1117
下一篇:Windows2000下安装J2EE和部署J2EE应用程序 人气:605
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐