快速业务通道

走上开放之路: .NET开发人员的J2EE基础(下) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
UserValidation user = new UserValidation();       if (user.validate(userName, password)) {        response.sendRedirect("mainpage.jsp");       }        ... } catch (Throwable t) {   ... } } }

清单 28 显示了在一个单独的类中的凭据验证代码。

清单 28. J2EE 中的 MVC User-validation class

package com.ibm.businessobjects; public class UserValidation {   public boolean validate(String username, String password) {    ...   } }

凭据验证 servlet 所使用的类中进行。现在该 servlet 不必知道关于验证如何进行的信 息。只要您保持相同的公开接口不变,就可以随意更改 UserValidation 类,不再需要改变 servlet 代码。

其他 J2EE 组件

前面的例子展示了如何将业务逻辑分离到一个或一组单独的类中。这样允许您以各种不同 的方式实现业务逻辑,而不会影响 servlet 和 JSP 页面。与使用一个需要访问数据库(使 用 JDBC)的业务对象不同,您可以通过各种不同的方式实现这个逻辑。例如:

使用 JCA 来访问诸如大型机等遗留系统:JCA 是一个 J2EE API,它允许 J2EE 应用程序 使用标准接口来与遗留系统(比如 CICS 或者 IMS)交互。

使用 Web 服务客户端 API 来访问 Web 服务:这种方法涉及使用 Apache Axis 或其他某 种 Java Web 服务客户端 API 来访问 Web 服务。

使用 JMS 将消息作为验证请求来发送:这种方法涉及使用标准 API 来访问 JMS 相容的 消息中间件(比如 WebSphere MQ)。

使用 EJB 技术来实现验证逻辑:这种方法涉及使用 EJB 组件(而不是简单的 Java 类) 来实现业务逻辑。EJB 组件能够使用应用服务器中的服务来管理(数据库或其他)事务,管 理方法级的安全,以及提供群集和高速缓存。将此类任务委托给应用服务器,您可以把精力 集中在业务逻辑上,而不必担心系统级的问题。

走上开放之路: .NET开发人员的J2EE基础(下)(7)

时间:2011-04-09 IBM David Carew

J2EE 数据访问

下面我们将介绍 JDBC API,这是 J2EE 下的行业标准接口集,它允许 Java 程序使用统 一的 API 调用集来访问关系数据库。JDBC 允许您开发应用程序一次,然后针对 JDBC 相容 的任何数据库部署它们――DB2、Oracle、SQL Server、Sybase、mySQL、Informix 以及其他 数据库。

JDBC API 允许任何 Java 组件(包括 Java Servlets 和 JSP 页面)无缝地访问关系数 据库中的数据。 JDBC 由两部分组成:用于访问数据库的 API,以及数据库厂商为各自的数 据库提供的可插入 JDBC 驱动程序。JDBC API 最便利的特性之一在于,您不必使用任何厂商 专用的类。您可以在运行时使用一个字符串常量来指定适当的驱动程序,以后就可以使用相 同的编程接口,而不管所使用的是哪种数据库。这样允许您切换数据库,而不必更改代码( 只要您提供在用于运行时指定驱动程序的字符串常量)。

一个 JDBC 例子

典型的 JDBC 应用程序必须完成以下步骤才能与数据库交互:

识别驱动程序。(每个应用程序只需执行这个步骤一次。)

识别数据库并与之建立连接(在需要时提供身份验证信息)。

执行查询和/或更新。

处理结果。

断开与数据库的连接。

图 29 说明了上述步骤。

清单 29. 一个 JDBC 例子

// Step 1. SPECIFY THE APPROPRIATE DRIVER TO USE Class.forName("COM.ibm.db2.jdbc.app.DB2Driver"); // Step 2. Identify the database and connect to it Connection conn = DriverManager.getConnection ("jdbc:db2:SAMPLE","userid","password"); // Step 3. Execute query Statement stmt = conn.createStatement(); stmt.execute("SELECT * FROM USERID.E

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号