一种基于Java的Web开发方法应用系统外文翻译资料

 2022-12-19 17:43:29

英语原文共 7 页,剩余内容已隐藏,支付完成后下载完整资料


《系统工程与电子杂志》,第10卷,第3期,1999年,第1 021页

一种基于Java的Web开发方法应用系统

李春雷

武汉交通大学计算机科学与工程系,430063,中华人民共和国(1999年2月1日接收)

摘要:本文采用服务器端Java编程模型:模型视图控制器构建基于Web的购物系统框架。使用Servlet、JavaServer页面(JSP)和JavaBean技术,我们提供了一个标准的、开放的、健壮的、跨平台的体系结构。它可以保证系统的独立性。提出的框架通过频繁地改变用户界面,实现了表示与业务逻辑的清晰分离,并使更多的功能在将来方便地添加。

关键词:Web应用系统,Java,电子购物系统。

  1. 介绍

创建Internet、Intranet和Extranet应用程序目前是编程重点的中心。它们都属于基于Web的业务应用程序[1],需要数据库连接、用户身份验证、会话管理和动态HTML生成。基于Web的应用程序应具有以下功能:

1)独立于客户端的平台,通常是浏览器;

2)独立于服务器端的平台,包括Unix和Windows环境;

3)能够连接到各种数据库,如Oracle、Informix、SQL Server等;

4)能够在不同的Web服务器上运行,包括Netscape、Apache、IIS和JavaWeb服务器以及其他流行的Web服务器;

5)模块化程度高,未来可增加更多功能;

6)易于实现,成本低。

有几种方法用于实现Web应用程序。传统的CGI为每个请求创建一个单独的进程,因此当请求增加时,服务器将加载过多的同时进程,系统性能将下降。使用专有的Web服务器API(如isapi和nsapis)将使您锁定使用来自特定供应商的Web服务器。尽管适当的脚本语言,如Netscape的Live Wire或Microsoft的Active Server Pages易于使用,但它们也有一些缺点,如专有的服务器API。为了实现满足上述六个要求的Web应用,需要先进的方法[1]。

本研究采用服务器端Java编程模型来开发Web应用程序[2 ]。这个基于servlets、jsp和javaBean的编程模型提供了一个标准的、开放的、健壮的Web体系结构。用该方法制作的程序具有Java的可移植性、可重用性和灵活性的自然优势。在下面的部分中,我们将通过演示电子购物系统来解释所建议的方法以及如何使用该方法开发Web应用程序。

2. 服务器端JAVA编程模型

服务器端Java编程模型是基于三个最近的Java服务器端技术:servlet、Java服务器页面(JSP)、JavaBean或企业JavaBeans(EJB)。servlet是响应HTTP要求的Web服务器扩展,其方式与CGI程序相同。JSP是实现业务逻辑并通常访问企业数据、事务和应用程序的托管组件。这些技术构成了基于Java的开放的、可扩展的、高生产率的Web体系结构的核心。除了Java作为编程语言的优势,如Java的广泛类库和API支持网络、分布式计算、消息传递、事务处理、数据库、安全性以及许多其他对于服务器编程必不可少的功能。Java作为一个平台有很多优点:Java是基于标准的,许多供应商有助于API规范,从而使客户受益于广泛的实现,而不是被锁定在单个供应商中。

2.1 Servlet

正如Applet是Web浏览器的Java插件一样,servlet也是Web服务器的Java插件。Sun刚刚发布了Servlet API 2.1的规范,该规范为servlet定义了一个标准的Java接口。大多数Web服务器可以通过servlet引擎扩展到主机servlet,Servlet引擎是运行Java虚拟机(JVM)的高性能插件。servlet引擎管理servlet,使用存储在服务器上的cookie和本地数据维护HTTP会话状态,并可以存储用户的配置文件。servlet API为我们提供了一个简单、健壮和强大的对象框架,用于构建基于HTML的应用程序,包括用于从Web服务器请求中检索参数的对象、用于将HTML响应发送到客户端的简单流接口,以及更高级的功能,如cookie和服务器端包含的serVLE [ 2,3]。

servlet API实际上是任何语言中最完整的一种,用于编写基于HTML的应用程序,它还为您提供了对其他JDK丰富API的访问。此外,servlet API继续扩展(JDK1.1添加了页面编译、会话跟踪、模板和servlet bean)。servlet实例经历一个简单的生命周期。每个实例初始化一次,请求多次,最后销毁。可以将servlet配置为在servlet引擎启动或接收到第一个请求时初始化。每个请求都指向同一个实例,但在一个单独的线程上,因此servlet必须设计为线程安全的[2]。由于servlet在请求之间保持活动状态,因此可以使用它来保存状态信息。通常会话和cookie相互作用以实现用户身份验证。在下一节中,将详细讨论这一点。

servlet API是独立于协议的,它允许将其嵌入到许多不同的Web服务器中。servlet接口是一个标准接口,因此servlet可以从一个servlet移动到另一个servlet。servlet引擎本身支持各种Web服务器,因此servlet不会锁定在单个平台中。这使程序员能够在一个系统上开发并部署到另一个系统上。

作为一组独立但相互连接的模块,servlet根据请求动态实例化这些模块。主servlet处理与数据库的连接以及所有模块的用户身份验证。当主servlet接收到请求时,它决定要加载哪个模块。模块始终是请求中的参数,然后仅使用模块的名称动态实例化模块。每个模块都是抽象类的一个子类,其中包括处理模块名称的方法。servlet的HTTP请求处理方法(doget和dopost)的任务是简单地实例化请求的模块,传递必要的参数,并调用其处理方法。其结构如图1所示。

图1 servlet工作架构

2.2 Java服务器页面和JavaBean

在许多情况下,将生成动态内容的任务分为两部分很有用:控制输入、处理和输出之间关系的业务规则;以及确定如何向用户显示信息的图形设计规则。在Java编程模型中,业务逻辑应该由JavaBeans处理,呈现逻辑应该由Servlet或JavaServer页面(JSP)处理[2 ]。JavaServerPages技术是一种在服务器端动态生成HTML的简单而强大的方法。使用JavaServer Pages技术,您可以使用动态生成的内容快速轻松地创建网页。在编写JavaServer页面时,可以调用可重用的服务器组件(如JavaBeans),并从HTML文件自动创建数据对象。这允许您将动态内容的生成与它的表示完全分开。因此,提供高质量的表示所需的技能可以集中在生成一个没有逻辑细节的可交付结果(JSP)上。JavaBean是一个可重用的软件组件。JavaBeans体系结构的主要目标之一是提供一个与平台无关的组件体系结构。我们可以使用JSP和JavaBean来构建基于Web的应用程序,实现这些目标有两种方法。一种方法是向Java Servlet[3]发送请求(参见图2)。

图2发送到Java servlet的请求

通过这种方式,客户端发出一个由Java servlet处理的请求。servlet生成动态内容,servlet使用JDBC与数据库通信以获取内容。然后servlet将动态内容包装成bean。JavaServerPages文件从bean访问动态内容,并在客户机Web浏览器中显示内容[31]。

另一种方法是,在客户机Web浏览器中工作的用户可以直接请求一个JavaServerPages文件(见图3)。

图3发送到JavaServer页面文件的请求

在接收到客户机请求后,JavaServerPages文件需要来自JavaBean的信息。JavaBean可以反过来从企业JavaBean或数据库请求信息。一旦JavaBean生成了内容(可能与企业JavaBean、数据库或两者一起工作),JavaServerPages文件就可以查询和显示bean的内容[2,3]。

2.3 Java服务器端架构

为了创建用于业务目的的Java Web应用程序,JavaBeans、JSP和Servlet可以组合在以下模型视图控制器设计模式中:

1)用户填写HTML表单并点击提交按钮,该请求将该请求发送给Java servlet(控制器)。servlet读取输入参数并将其传递给执行业务逻辑的JavaBeans(模型);

2)servlet根据业务逻辑和用户配置文件的结果,选择一个JSP(视图)并调用它来显示结果;

3)JSP从JavaBeans中提取结果,并将其与最初提交的HTML表单合并,然后返回给用户;

4)Web应用系统可以非常有效地按照通用模型-视图-控制器体系结构进行设计。下一节将讨论基于该模型的电子购物系统。

3. 一个示例系统

基于上述模型的电子购物系统框架如图4所示。servlet引擎(Web服务器)运行多个servlet。来自浏览器的传入请求由servlet响应,servlet控制应用程序服务器中的请求处理。接下来,该控制器选择一个或多个JavaBeans(和/或EJG),它们提供对应用程序业务逻辑的访问。然后,bean执行或协调必要计算的性能,这将导致动态内容返回给客户机。最后,控制器将选择适当的输出表示“模板,一个JavaServer页面(JSP),并调用它来显示动态内容、响应到浏览器[4]。

应用服务器包括三个主要模块:用户认证servlet、查询servlet和orderform servlet。身份验证部分是一个混合的cookie会话模块,它使用cookie以加密格式存储基本ID、userman和清除[5]。每个用户在使用嵌入在HTML表单中的小程序输入个人信息后,都会获得使用权限。queryservlet处理从Web服务器接收的用户请求。当queryservlet需要来自数据库的数据时,它通过代理服务器发送一个请求,代理服务器将请求转发到相应的数据库应用程序服务器[6]。PROXYServer使用Java的哈希表类维护与多个数据库应用服务器的连接,并且PROXYServer还使用Java提供安全同步的THeLead安全库。OrderFormServlet处理用户的订单,打开购物中心的SMTP连接以发送电子邮件。

图4电子购物系统框架

3.1用户身份验证servlet

HTTP协议是无状态的,这意味着Web服务器无法将从一个页面上的用户收集的信息与该用户在另一个页面上的请求相关联。如果没有某种状态机制,基于Web的电子购物系统将永远不会存在,因为它会忘记您是谁,或者在您准备向购物车添加第二个商品时收集了什么。

采用混合cookie会话方法实现用户认证。cookie用于以加密格式存储基本ID、用户名和清除信息。因为每个页面请求都需要解密一个cookie,所以这三个项目应该存储在会话中。其他数据(如购物车中收集的项目)仅存储在会话中。所有请求都通过身份验证servlet,而不考虑URL。这个servlet大致处理身份验证过程如下。直接从会话中获取ID、用户名、清除和任何必要的数据(如果找到有效会话),否则检查有效的cookie(如果找到),解密cookie并将用户ID、用户名和清除复制到新会话中。如果既没有有效的会话也没有cookie,那么请求用户登录、注册或将其作为来宾。

这种混合方法的好处是:使用会话,我们可以在每个页面上实现快速身份验证,还可以存储大量任何类型的数据。使用cookie,我们可以持久地记住所需的数据。系统是安全的,因为用户无法编辑会话,并且cookie是加密的。

3.2 PROXY服务器

proxyserver是一个servlet,它维护与许多购物中心数据库应用服务器的连接。哈希表类用于存储分布在Internet上的数据库服务器的URL。为了获得放置数据库的服务器位置的端口号和主机名,应该创建一个小的配置文件。配置数据用于servlet引擎在首次创建servlet时调用的“init”方法中。每个servlet只调用一次“init”方法,不管实际生成了多少servlet实例。配置代理服务器后,它将等待来自另一个servlet的调用。另一个servletproxy(如queryservlet)可以直接调用proxyserver的方法,该方法使用对JavaBeans的引用来获取所需数据。PrixyServer使用一些JavaBeans到数据库连接(JDBC)来连接数据库,JDBC提供了数据库供应商独立性。JSP通过JavaBeans的属性获取内容,并将其发送到一个HTML页面,然后发送给用户。

3.3查询服务程序

queryservlet处理从Web服务器接收的用户请求。它将用户信息格式化为SQL语言。然后,它使用servlet API中的“getservletcontext”和“getservlet”

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[19802],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。