知识大全 利用Java服务程序开发三层次数据库应用程序
Posted 知
篇首语:我认为人生最美好的主旨和人类生活最幸福的结果,无过于学习了。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 利用Java服务程序开发三层次数据库应用程序相关的知识,希望对你有一定的参考价值。
利用Java服务程序开发三层次数据库应用程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
本文是有关Java服务程序的三组系列文章之二 上个月( JDJ 第 卷 第 期) 我向大家介绍了Java服务程序技术 以及如何将您现有的CGI程序移植到Java服务程序的方法 本文将不再重复以前介绍的内容 我先假定大家对Java Servlet API (应用程序设计接口)和Java数据库连接API的基本知识已经比较熟悉 在本文中 我将介绍如何利用Java服务程序(Servlet)和Java数据库连接(JDBC) 技术创建三层次数据库应用程序 您将了解每一层的创建方法以及采用数据库连接来创建Java服务程序所使用的技术 挑 战 某著名公众演说家对参加她举办的因特网讲座的学生进行跟踪调查 每次讲座结束后 她都会与感兴趣的学生交换名片 然后 把学生数据输入她的数据库程序 她并非把每张名片的数据依次输入计算机 而是借助万维网应用程序来完成这项工作 在每次举办讲座时 她都在若干万维网终端上设立万维网应用程序 每位学生都在万维网终端登记 输入各自的姓名 所在公司 电子邮件(e mail)地址 课程名称和对课程的期望 万维网应用程序还可显示所有学生的最新名单 三层解决方案 这个万维网应用程序由三部分组成 浏览器 服务程序中间件和数据库服务程序 这三层如图 所示 图 三层次解决方案 第一层使用浏览器 可充分发挥这一通用客户端巨大的用户安装数的优势 用一个HTML表格作为用户输入界面 而数据库查询结果用HTML页面返回 采用HTML页面作为用 户输入和数据显示的界面可降低对客户端浏览器版本的要求 这种万维网应用程序并不要求必须采用具有最新JDK修补程序的Java使能的浏览器 第二层采用运行Java服务程序的Web服务器 Java服务程序可访问 菘猓⒎祷亓杏惺莸腍TML页面 请注意 Java服务程序不只运行于Sun Microsystems公司的Java Web Server上 您也可在下列服务器上使用Java服务程序 Microsoft IIS Netscape FastTrack Server及Enterprise Server以及O?Reilly公司的WebSiteProfessional 在Live Sofare公司的JRun产品()上也可实现Java服务程序的功能 Sun公司的Java Server主页上列有支持Java服务程序的Web服务器列表 第三层是后端数据库服务器 只要计算机安装了JDBC驱动程序 那么Java服务程序就能从数据库中提取数据 在本文所讨论的情形里 公众演说家的数据库是MS Access 所以 我们可以使用与Java Development Kit 版或更高版本捆绑在一起的JDBC ODBC驱动程序 应用程序的交互过程 您可以看到 应用程序被划分成三个不同的层次 图 表示应用程序不同层次之间的交互过程 图 应用程序的交互过程 下面介绍交互过程的每个步骤 第一步 用户将信息输入HTML表格 表格的数据被传输到在Web服务器上运行的Java服务程序中 第二步 Java服务程序对表格的数据进行分析 并创建一条SQL语句 然后 通过Java数据库接口(JDBC)将该SQL语句传输到数据库服务器 第三步 数据库服务器执行该SQL语句 并将一组结果返回给Java服务程序 第四步 Java服务程序对这组结果进行处理 并用其中的数据创建一个HTML页面 随后 该HTML页面被返回到用户的Web浏览器 对数据库模式进行分析 本文的公众演说家正在将学生信息存入MS Access数据库 该数据库包括一个名为 Students 的数据表 表 定义了数据字段 表 数据库结构 设计Web浏览器界面 浏览器界面包括一个主菜单页面 用户使用该页面可选择学生注册 或显示数据库中的学生 列表 提供了主菜单的HTML代码 学生注册表 学生使用HTML表格进行注册 该表格采集姓名 电子函件地址 公司名称和其它与课程相关的信息 图 为学生注册表 图 学生登记注册表 开发服务程序中间件 服务程序中间件封装了应用程序的业务逻辑 服务程序对表格中的数据进行分析 并构造一条SQL语句 随后 该SQL语句被传送到数据库服务器 在SQL语句执行完毕后 数据库服务器将结果集返回给服务程序 至此 服务程序对结果集进行处理 并为用户构造一个HTML页面 被创建的服务程序称作StudentDBServlet StudentDBServlet有执行下列功能的方法 初始化 对请求的服务 对学生数据的显示和对学生的登记 下面详细介绍这些功能 服务程序的初始化 在服务程序的生命周期内 当服务程序第一次被调用时 首先调用init()方法 列表 为init()方法的代码清单 StudentDBServlet服务程序来说 一个数据库连接被打开 并创建用于显示学生列表或进行学记的预先准备好的SQL语句(Prepared Statement) 这个数据库连接在服务程序的整个生命周期内都将保持打开的状态 根据用户的设计 用户可以为每个SQL查询打开或关闭一个连接 但在此应用中 数据库连接仅打开一次 对用户请求提供服务 每次服务程序被调用时 service()方法会被调用 service()方法是服务程序的主要入口点(Entry Point) 但是 如果这是服务程序第一次被调用 那么就会先调用init()方法 然后再调用service()方法 本应用中的service()方法系用来将请求转移给相应的处理方法 学生登记表中有一个名为 Register 的隐含字段 service()方法核对 Register 字段的值 如果该值非空(null) 则registerStudent()方法就被调用 如果HTML页面不存在该字段 则返回一个空值(null) 如果返回空值(null) 则会执行displayStudent()方法 显示学生名单 displayStudent()方法包括访问数据库和显示学生名单的业务逻辑 这是通过使用辅助的Student (学生)类实现的 列表 给出了Student类的代码 Student类有为每位学生保持信息的数据成员 Student类还有能根据表格数据或一组数据库结果创建对象的构造程序 下列语句表示学生的姓是如何从表格数据中获取 的 lastName = request getParameter ( LastName ); 请求对象是HttpServletRequest的一个实例 请求对象包含表格数据 表格数据可通过调用getParameter( )方法并提供表格字段的名称获得 学生注册表中包含有一个LastName字段 (请参考我以前发表在JDJ的文章 其中详细讨论了服务程序如何获取表格数据) Student类有存取其数据成员并以字符串方式表示其数据的方法 列表 中包括了Student类的方法代码清单 toString()方法以普通的字符串格式返回数据成员 toWebString( )方法以HTML无序列表的格式返回数据 toTableString( )方法以HTML表格的格式返回数据 这些方法被用来创建学生名单 构造一个HTML页面后就创建了学生名单 在列表 中的displayStudents()方法中 创建了HTML页面的标题 随后再创建显示下列信息的表格标题 服务程序向数据库服务器发出请求 获得学生的名单 在init()方法中准备了下列SQL语句 select * from Students order by LastName; SQL语句将根据姓氏并按照字母顺序返回学生的名单 这组结果被用来创建HTML表格的主体 通过创建while循环语句 处理这组结果的每个记录 该while循环语句的 部分代码如下 int rowNumber = ; while (dataResultSet next( ) ) aStudent = new Student(dataResultSet); tableBody += aStudent toTableString(rowNumber); rowNumber++; 每个记录都被用来创建一个新的Student对象 toTableString()方法被调用 以获得学生数据的字符串表示 前面谈到 toTableString( )方法以HTML表格的格式返回数据 在构造了表格主体后 结果集就被关闭 在主页的底部 还提供了至主菜单页面的浏览链接 在服务程序方面进行了大量的处理工作 但我们到现在还没有结束 必须将HTML页面返回给Web浏览器 这是通过在响应对象上打开一个输出流实现的 响应对象是HttpServletResponse的一个实例 将HTML页面返回给用户的语句如下 PrintWriter outputToBrowser = new PrintWriter(response getOutputStream()); response setContentType( text/ ) ; outputToBrowser println(Page); outputToBrowser close( ); 为HTML设置了内容类型(content type)后 用println()方法将Page串返回给浏览器 图 为StudentDBSServlet所返回的学生名单样本 图 学生名单 学生的登记处理 registerStudent()方法根据HTML表格数据创建一个新的Student对象 这个Student对象被用来作为在init( )方法已经准备好的SQL语句中的参数 下列语句表示参数是如何设置的 registerStatement setString(LAST_NAME_POSITION aStudent getLastName()) 所有参数设置完毕后 就执行SQL语句 该语句执行完毕后 新的学生数据就成功地插入到数据库中了 此外 还为用户构造了确认页面 确认页面包含成功地插入数据库的数据列表 Student toWebString()方法被调用 为无序列表提供一个HTML字符串 合 至此 应用程序的全部三层均已构造完毕 用户界面由在浏览器中显示的HTML页面组成 对浏览器的唯一要求就是必须能显示HTML表格 Microsoft (微软)公司和Netscape(网景)公司所提供的两种主要浏览器均可轻松地满足这一要求 所以能保证Web应用程序对浏览器是友好的 后端数据库是采用Microsoft Access创建的 但只要存在相应的JDBC驱动程序 就可使用任何一种数据库 在我们所讨论的情形里 公 cha138/Article/program/Java/hx/201311/26178相关参考
概论 本文将介绍如何创建一个三层应用程序并且将介绍如何创建一个WebService服务 ADONET创建Wi
用Java实现多线程服务器程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 摘要在Java出现
一个用JAVA写测算服务器响应速度程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 任务描述
使用JavaNIO提高服务端程序的性能 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 结合具体的
Java连接DB2数据库开发应用程序的步骤 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本文我们来
知识大全 用java写一个登陆程序,可以与服务器连接,登陆成功后跳转到服务器网站上
用java写一个登陆程序,可以与服务器连接,登陆成功后跳转到服务器网站上楼主,这样的需求,不管如何都要有一个API说明的吧,根据实际的情况写相应的网络程序ftp服务器无法登陆,同一个服务器上的网站可以
用Delphi开发Web服务数据库程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!第一步编写服务
java程序操作MySQL数据库 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 数据库内容&nb
改进的OracleJpublisher可以将数据库实体映射到Java和Web服务 编写客户端和中间层的Java与JEE应用程序来表示数据库实体如用户定义的SQL对象类型和集合类型时如果你需要
Java程序性能优化-数据库调优 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 数据