

英语原文共 7 页,剩余内容已隐藏,支付完成后下载完整资料
一种基于Java的Web开发方法应用系统
摘要:本文采用服务器端Java编程模型:模型视图控制器构建基于Web的购物系统框架。使用servlet、JavaServer页面(JSP)和JavaBean技术,我们提供一个标准的、开放的、健壮的和跨平台的体系结构。它可以保证系统独立性。所呈现的框架通过频繁地更改用户界面,使表示与业务逻辑清晰地分离,从而满足用户的喜好,并为以后方便添加更多的功能提供支持。
关键词:Web应用系统,Java,电子购物系统。
1.介绍
创建Internet、Intranet和Extranet应用程序目前是编程的中心。它们都属于基于Web的业务应用程序[1],需要数据库连接、用户身份验证、会话管理和动态HTML生成。基于Web
应用程序应具有以下功能:
1)独立于客户端的平台,通常是浏览器;
2)独立于服务器端的平台,如包括Unix和Windows环境;
3)能够连接到各种数据库,如Oracle、Informix、SQL等服务器;
4)能够在不同的Web服务器上运行,包括Netscape、Apache、IIS和Java网络服务器和其他流行的网络服务器;
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和服务器端包含的servlet[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作为应用服务器[1]的概念,我们将应用程序开发为一组独立但相互连接的模块,servlet根据请求动态实例化这些模块。主servlet处理与数据库的连接以及所有模块的用户身份验证。当主servlet接收到请求时,它决定要加载哪个模块。模块始终是请求中的参数,然后仅使用模块的名称动态实例化模块。每个模块都是抽象类的一个子类,其中包括处理模块名称的方法。servlet的HTTP请求处理方法(doget和dopost)的任务是简单地实例化请求的模块,传递必要的参数,并调用其处理方法。其结构如图1所示。
2.2Java服务器页面和JavaBean
在许多情况下,将生成动态内容的任务分为两部分很有用:控制输入、处理和输出之间关系的业务规则;以及确定如何向用户显示信息的图形设计规则。在Java编程模型中,业务逻辑应该由JavaBeans处理,呈现逻辑应该由Servlet或JavaServer页面(JSP)处理[2 ]。JavaServerPages技术是一种在服务器端动态生成HTML的简单而强大的方法。使用JavaServer Pages技术,您可以快速轻松地创建包含动态生成内容的网页。在编写JavaServer页面时,可以调用可重用的服务器组件(如JavaBeans),并从HTML文件自动创建数据对象。这允许您将动态内容的生成与它的表示完全分开。因此,提供高质量的表示所需的技能可以集中在生成一个没有逻辑细节的可交付结果(JSP)上。JavaBean是一个可重用的软件组件。JavaBeans体系结构的主要目标之一是提供一个与平台无关的组件体系结构。我们可以使用JSP和JavaBean来构建基于Web的应用程序,实现这些目标有两种方法。一种方法是向Java Servlet(3)发送请求(参见图2)。
通过这种方式,客户端发出一个由Java servlet处理的请求。servlet生成动态内容,servlet使用JDBC与数据库通信以获取内容。然后servlet将动态内容包装成bean。JavaServerPages文件从bean访问动态内容,并在客户机Web浏览器[3]中显示内容。另一种方法是,在客户机Web浏览器中工作的用户可以直接请求一个JavaServerPages文件(见图3)。
在接收到客户机请求后,JavaServerPages文件需要来自JavaBean的信息。JavaBean可以反过来从企业JavaBean或数据库请求信息。一旦JavaBean生成了内容(可能与企业JavaBean、数据库或两者一起工作),JavaServerPages文件就可以查询和显示bean的内容[2,3]。
2.3Java服务器端架构
为了创建用于业务目的的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执行或协调必要计算的性能,这将导致动态内容返回给客户机。最后,控制器将选择适当的输出“presentation”模板,即一个JavaServer页面(JSP),并调用它来显示动态内容,并响应浏览器[4]
应用服务器包括三个主要模块:用户认证servlet、查询servlet和orderform servlet。认证部分是一个混合的cookie会话模块,它使用cookie以加密格式[5]存储基本的id、userman和clearance,每个用户在使用嵌入HTML格式的applet输入个人信息后都获得使用权限。queryservlet处理从Web服务器接收的用户请求。当queryservlet需要来自数据库的数据时,它通过代理服务器发送一个请求,代理服务器将请求转发到相应的数据库应用程序服务器[6]。PROXYServer使用Java的哈希表类维护与多个数据库应用服务器的连接,并且PROXYServer还使用Java提供安全同步的THeLead安全库。orderform servlet处理用户的订单打开购物中心的SMTP连接以发送电子邮件。
3.1用户身份验证servlet
HTTP协议是无状态的,这意味着Web服务器无法将从一个页面上的用户收集的信息与该用户在另一个页面上的请求相关联。如果没有某种状态机制,基于Web的电子购物系统将永远不会存在,因为它将忘记您是谁,或者在准备向购物车添加第二个项目时收集到的内容。采用混合cookie会话方法来实现用户身份验证。cookie用于以加密格式存储基本ID、用户名和清除信息。因为每个页面请求都需要解密一个cookie,所以这三个项目应该存储在会话中。其他数据(如购物车中收集的项目)仅存储在会话中。所有请求都通过身份验证servlet,而不考虑URL。这个servlet大致处理身份验证过程如下。直接从会话中获取ID、用户名、清除和任何必要的数据,如果找到有效会话,则检查有效的cookie,如果找到,则解密cookie并将用户ID、用户名和清除复制到新会话中。如果既没有有效会话也没有cookie,则要求用户登录、注册或将其认作来宾。这有利于混合方法是:使用会话,我们可以在每个页面上实现快速的身份验证,还可以存储大量的任何类型的数据。使用cookie,我们可以持久地记住所需的数据。系统是安全的,因为用户无法编辑会话,并且cookie是加密的.
3.2代理服务器
proxyserver是一个servlet,它维护与许多购物中心数据库应用服务器的连接。hashtable类用于存储分布在Internet上的数据库服务器的URL,为了得到放置数据库的服务器的位置的端口号和主机名,需要创建一些配置文件。配置数据用于servlet引擎在首次创建servlet时调用的“init”方法中。每个servlet只调用一次“init”方法,不管实际生成了多少servlet实例。配置代理服务器后,它将等待来自另一个servlet的调用。另一个servlet代理(比如查询servlet)可以直接调用proxyserver的方法,后者使用对javaBeans的引用来获取所需的数据。PrixyServer使用一些JavaBeans到数据库连接(JDBC)来连接数据库,JDBC提供了数据库供应商独立性。JSP通过JavaBeans的属性获取内容,并将其发送到一个HTML页面,然后发送给用户。
3.3查询servlet
queryservlet处理从Web服务器接收的用户请求。它将用户信息格式化为SQL语言。然后,它使用servlet API中的“getservletcontext”和“getservlet”方法获取对代理服务器的引用。一旦获取了代理服务器,它就可以使用当前请求的URL来决定应该使用哪个数据库服务器来满足其请求。queryservlet还可以将用户信息放入对象中,然后将该对象传递给proxyserver,proxyserver可以从数据库中获取有用的数据,并通过对象返回值。
3.4订单窗体servlet
orderformservlet用于处理用户订单。它负责处理每一份提交的表格,打包,然后通过电子邮件发送到网上某个购物中心的邮箱。邮件文本只是打开与SMTP邮件主机的连接并向其发送邮件正文的问题。SMTP通常位于TCP端口25上,您可以使用Internet上的大多数邮件主机。打开到端口的连接是通过套接字穿孔的,而Java API对此非常支持。然而,这可能会变得有点混乱,特别是如果你真的不知道如何格式化从用户那里收集到的文本信息,以便邮寄者能够正确地解释它。使用servlet中的smtpclient类可以使发送电子邮件的整个过程
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[20085],资料为PDF文档或Word文档,PDF文档可免费转换为Word
您可能感兴趣的文章
- 饮用水微生物群:一个全面的时空研究,以监测巴黎供水系统的水质外文翻译资料
- 步进电机控制和摩擦模型对复杂机械系统精确定位的影响外文翻译资料
- 具有温湿度控制的开式阴极PEM燃料电池性能的提升外文翻译资料
- 警报定时系统对驾驶员行为的影响:调查驾驶员信任的差异以及根据警报定时对警报的响应外文翻译资料
- 门禁系统的零知识认证解决方案外文翻译资料
- 车辆废气及室外环境中悬浮微粒中有机磷的含量—-个案研究外文翻译资料
- ZigBee协议对城市风力涡轮机的无线监控: 支持应用软件和传感器模块外文翻译资料
- ZigBee系统在医疗保健中提供位置信息和传感器数据传输的方案外文翻译资料
- 基于PLC的模糊控制器在污水处理系统中的应用外文翻译资料
- 光伏并联最大功率点跟踪系统独立应用程序外文翻译资料
