Ajax框架

2024-05-23

Ajax框架(精选五篇)

Ajax框架 篇1

随着Internet网络技术的发展,Web应用程序的优势更为明显,比如不受地域限制、客户端无需安装、升级简单等优点,开发Web应用的编程语言有很多种,其中:Java语言是最适合Internet应用程序开发的语言之一,它的平台无关性、安全性、移植性都使得Java语言成为Web应用程序开发的首选,Struts框架是一个J2EE MVC轻量级框架,使用Struts可减少在运用MVC设计模型来开发Web应用的时间,增强Web应用程序的扩展性[1]。近年来Ajax技术的出现,改变了传统B/S结构的web应用程序在异步通讯方面的不足,B/S结构的web应用程序也逐渐向胖客户端发展,富因特网应用(Rich Internet Applications,RIA)具有很强交互性的富客户端技术来为用户提供一个更高和更全方位的网络体验。RIA集成了桌面应用的交互性和传统Web应用的部署灵活性与成本分析,以创建单一而完整的用户体验。

前期众多的Web系统采用Struts MVC架构,如何升级改造遗留的Web系统,成为影响系统建设成败和开发效率的关键因素之一,富客户端技术的出现为整合遗留的Web系统成带来契机,因为RIA能够实现(尽可能少地)不改变系统业务逻辑的前提下,使系统具有更强的交互性、美观性。

2 Ajax框架EXTjs

Ext JS是一个优秀的用Java Script编写Ajax框架,经过不断发展与改进,已经成为最完整与成熟的一套构建RIA Web应用的JavaScript基础库。利用Ext JS构建的RIA Web应用具有与桌面程序一样的标准用户界面与操作方式,能够横跨不同的浏览器平台。Ext JS所开发的多彩界面,即使开发人员没有美术功底,也可以制作出具有很强交互性的炫丽Web页面,Ext JS已经成为开发具有较好用户体验的Web应用的完美选择。

Ext JS不但在Web开发中成功引入了丰富的组件,也引入了桌面程序中经常用到的面板及布局概念,这些概念的引入在很大程度上改变了传统的Web开发方式,Ext2.0对框架进行了非常大的重构,其中重要的一点是形成了一个结构及层次分明的组件体系,由组件形成了Ext的控件,Ext组件是由Component类定义,每一种组件都有一个指定的xtype属性值,通过该值可以得到一个组件的类型或者是定义一个指定类型的组件。

3 EXTjs整合Struts Web

3.1 分析遗留Struts应用系统

MVC设计模式来源于面向对象语言Small Talk,它提出了一种思想,用于抽象和提炼一个系统的各个组成部分以及各部分之间的关系,Struts对Model、View和Controller都提供了对应的实现组件。

Struts的工作流程如下:

(1)用户的请求以HTTP方式传输到服务器上,接受请求的是Action Servlet。

(2)Action Servlet接收到请求后,查找Struts-config.xml文件来确定服务器上是否有用户请求的操作。

(3)当Action Servlet请求找到用户请求的Action后,通常使用类Dispatch Action来处理用户的请求。

(4)系统生成一个用户所请求的Action的实例对象,并将请求的参数传递给Dispatch Action相应的方法处理。

(5)Dispatch Action执行结束前会生成Action Forward类型的对象并将之返回给Action Servlet,Action Servlet查找Struts-config.xml返回用户相应的Web页面。

采用Struts MVC框架构建的Web系统通常与Spring、Hibernate框架配合使用,Struts主要负责用户请求的调度,IOC容器Spring处理业务逻辑,持久化工具Hibernate为关系型数据库和面向对象技术做映射,三种框架在标准化和规范化方面优势突出,并且各个框架之间提供了良好支持[2]。

3.2 框架整合步骤及编程实现

Struts MVC框架优势在于对系统分层,同时Struts标签库的使用能够减少页面代码与逻辑代码的分离,但在Web页面局部刷新方面需借助其他Ajax框架,Ext JS框架恰能够实现网页异步传输的功能,用户页面等待的时间更短,获得更好的体验。

使用Ext JS框架整合Struts Web应用时,开发人员只需要对Dispatch Action进行改写,假定遗留的Struts Web系统使用了Spring、Hibernate框架,那么Dispatch Action中应该不包含任何的业务逻辑代码,开发人员只需要在Dispatch Action处理请求结束之前返回ExtJS所需要的数据格式,不再需要forward到struts指定的页面。

ExtJS用Ajax传送数据的格式主要包括Xml和Json(JavaScript Object Notation)格式,推荐使用Json格式,Json是一种轻量级的数据交换格式,易于机器解析和生成,比xml更轻巧,由于Json是Java Script原生格式,这意味着在Java Script中处理Json数据不需要任何特殊的API或工具包。

使用Ext JS框架整合Struts Web应用步骤及编程实现如下:

(1)使用Ext JS界面布局Ext.Panel、Ext.Form以及其他的组件改造原始的Jsp或者Html页面。

(2)对请求的Dispatch Action进行改造,最重要的操作是直接向Http Servlet Response里写Json格式的内容,主要代码如下:

其中:jsondata为Json格式的数据,success和data是关键字,success必须设置为true,Ext.form通过success的值显示获取“个人简表信息”成功。

(3)获取“个人简表信息”成功后,可以对表单项进行修改并点击保存,提交给Dispatch Action,在服务器端获取参数方法如下:

String name=http Servlet Request.get Parameter("name");

4 结束语

本文分析了Struts Web应用系统的特点,针对富因特网应用(RIA)具有更强交互性,并具有能够为用户提供一个更高和更全方位的网络体验的优点,提出了使用Ajax框架Ext JS整合遗留的Struts应用系统的方法,在尽可能少地改动原有系统的基础上,使其具备更强的用户体验。尽管Ext JS已经成为开发具有较好用户体验的Web应用的首选,但其在内存损耗方面尚存在不足。

摘要:本文分析了Struts MVC框架的工作流程,在尽可能少地改动代码的前提下,提出了使用Json传输数据格式整合Struts与ExtJS的可行方案,通过Ajax框架ExtJS构建具有强交互性的富客户端Web应用,以增强遗留的Struts Web系统用户体验。

关键词:Struts,Json,EXTjs,富客户端应用

参考文献

[1]孙卫琴.精通Struts:基于MVC的Java Web设计与开发[M].北京:电子工业出版社,2004.

[2]张杰,杜玉越.基于OFBiz与J2EE的水利水电应用系统的设计[J].山东科技大学学报,2009,28(1),83-88.

Ajax框架 篇2

随着网络的发展, Ajax与Web Services技术相继出现。Web Services技术的出现改变了分布式系统设计的方式, 它是SOA的基石。Web Services促成了跨平台和跨语言的集成应用, 使得软件可以重复使用, 随需而变。Ajax技术随后出现, 它不仅提高了网页的交互性, 而且减少了网络的流量。

通过集成Ajax和Web Services技术, 可以提供给传统B/S模型更丰富的内容, 更多的功能以满足人们日益增长的在线需求。

1 Ajax技术

Ajax是基于JavaScript脚本和XML封装数据的服务器和客户端的异步交互技术, Jesse James Garrett在2005年提出这一概念[1], 其全称为异步JavaScript和XML (即Asynchronous JavaScript and XML) 。Ajax本身并不是一种全新的技术, 但是随着Web应用中可交互性, 可参与性, 人性化设计需求的提高, Ajax在目前的Web应用开发过程中已经迅速成为客户端炙手可热的技术。

目前Ajax技术的典型应用有:Google Map, Google suggest, MSN space和Web mail应用等。

1.1 Ajax使用的关键技术

Ajax不是单一的技术, 而主要是四种技术的集合[2]。

(1) JavaScript: JavaScript是通用的脚本语言, 用来嵌入在某种应用之中。

Web浏览器中嵌入的JavaScript解释器允许通过程序与浏览器的很多内建功能进行交互。Ajax应用程序是使用JavaScript编写的。

(2) CSS (层叠样式表) :

CSS为Web页面元素提供了一种可重用的可视化样式的定义方式, 它提供了简单而强大的方法, 以一致的方式定义和使用可视化样式。在Ajax应用中, 用户界面的样式可以通过CSS独立修改。

(3) DOM (文档对象模型) :

DOM以一组可以使用JavaScript操作的可编程对象展现出Web页面的结构, 通过使用脚本修改DOM, Ajax应用程序可以在运行时改变用户界面, 或者高效的重绘页面中的某个部分。

(4) XMLHttpRequest对象:

XMLHttpRequest对象允许Web程序员从Web服务器以后台活动的方式获取数据, 数据格式通常是XML, 但是也可以很好的支持任何基于文本的数据格式。

1.2 Ajax应用开发与传统Web应用的比较

传统的Web应用采用的是一种同步交互的方式, 如图1 (a) 所示。用户向浏览器发出一个HTTP请求, 浏览器处理请求并返回一个HTML页面给用户[3]。这样的处理方式会给用户一种不连贯的体验, 当服务器在处理请求的时候, 用户多数时间只能处于等待状态, 只有最终的响应结果传输到浏览器客户端时, 整个页面才会进行刷新, 以显示处理的结果。

与传统的Web应用不同, Ajax采用的是一种异步交互的处理方式, 如图1 (b) 所示。Ajax应用创建一个在浏览器上运行的基于JavaScript的引擎, 该引擎接受用户的输入, 显示请求的内容, 并在客户端处理部分请求。如果引擎需要更多的数据, 则会在后端向服务器端发出请求, 从而让用户继续与应用进行交互。借助Ajax, 可以把以前一些原本由服务器负担的工作转移到客户端来完成, 利用客户端闲置的能力来进行处理, 有效地减轻了服务器和带宽的负载。

2 Web Services技术

Web Services 是一种部署在Web上的对象, 它们具有对象技术所承诺的所有优点, 同时, Web Services建立在以XML为主的, 开放的Web规范技术基础上, 因此, 具有比任何现有的对象技术更好的开放性。Web Services平台是一套标准, 它定义了应用程序如何在Web上实现互操作性, 可以用任何语言, 在任何平台上编写所需要的Web Services[4]。

Web Services体系结构基于三种角色 (服务提供者, 服务注册中心和服务请求者) 之间的交互。交互涉及发布, 查找和绑定操作, 这些角色和操作一起作用于Web Services组件。在典型情况下, 服务提供者托管可通过网络访问的软件模块, 定义Web Services的服务描述并把它发布到服务注册中心;服务请求者使用查找操作来从服务注册中心检索服务描述, 然后使用服务描述与服务器提供者进行绑定并调用Web Services实现或同它交互。

要以一种互操作的方式执行发布, 查找和绑定这三个操作, 必须有一个包含每一层标准的Web Services协议栈。最简单的协议栈包括网络层的HTTP, 基于XML的消息传递层的SOAP协议以及服务描述层的WSDL。所有企业间或公用Web Services都应该支持这种可互操作的基础协议栈, 它使Web Services能够利用现有的因特网基础结构, 而且其灵活性并不会因为互操作性需求而降低。

3 Ajax与Web Services集成框架

一些研究者分别提出了Ajax与Web Services的集成框架[5,6], 这些框架都是类似的, 它们都使用Ajax引擎, 内嵌到Web浏览器中直接访问Web Services。现将Ajax与Web Services集成框架整理如下, 如图4所示。

从图4中可以了解到Ajax与Web Services集成框架的运行原理:①Web浏览器接受用户的指令并发送一个网页请求给Web服务器;②Web服务器发送包含Ajax引擎的网页给Web浏览器;③用户在用户界面继续执行命令, 这些命令首先由Ajax引擎处理, 然后Ajax引擎调用Web Services;④Ajax引擎得到Web Services发回的XML响应, 然后分析响应更新网页相关的内容。

通过以上的分析, 可以了解到, 这个框架的优点是很明显的。Web服务器仅仅是一个包含网页的容器, 一旦Web浏览器从Web服务器下载网页文件, 将不再访问Web服务器, 而是通过Ajax引擎快速的访问Web Services。由此, Web服务器的负担减轻了, 也不需要额外的网络流量, 有效的降低了服务器的负载, 提高了客户端处理器的使用率, 并具备了Ajax的优良特性。

同时, 可以了解到, 目前Ajax与Web Services 集成框架存在一些缺陷:

(1) 设计Ajax引擎比较困难。为了支持大部分的浏览器, 以及Web Services的安全性和会话功能, 程序员必须编写大量的代码。

(2) 维护系统比较困难。一旦Web Services发生改变, 需要修改大量的代码去重新绑定它。在一个大型分布式系统中, 有太多的网页需要修改。

(3) 不能利用Web服务器良好的程序模型和强大的处理能力。在框架中, Web服务器仅仅是网页的容器, 不能处理事务逻辑。

4 基于Proxy模式的框架

上面所讨论的框架中, Web服务器仅仅作为网页的容器是一种浪费。在此, 提出一种新的框架, 如图3所示。在此框架中, Web服务器强大的处理能力将会得到很好的利用, 而且便于编程。

从图3可以了解到此框架的运行原理:①Web浏览器接受用户的指令, 然后发送一个请求给Web服务器;②服务器发送包含Ajax代理的网页返回给Web浏览器;③用户在用户界面继续执行命令, 这些命令首先由Ajax代理处理, 同时调用Ajax Class的Ajax Method实例, 其输入参数类型为XML, Text或JSON;④在Ajax Method中, 调用Web Services代理的Web方法, 输入参数被修改;⑤Web Services代理发送SOAP请求给Web服务器;⑥Web服务器处理请求并发送SOAP响应给Web Services代理;⑦Web Services代理处理请求并将它返回给Ajax Class的实例;⑧Ajax Class处理响应的实例以异步的方式返回给Ajax代理, 最后Ajax代理更新页面的相关内容。

在此框架中, 访问Web Services的方式与之前所讨论的不同, 它由Web服务器所决定, 有很多类库和组件支持它, Web Services安全性和会话在Web服务器中集中进行管理, Web服务器上的编译型语言比浏览器上的解释型语言在数字签名和编码方面更高效, 而且, Web Services在Web服务器上进行调用, 方便了Web Services的整合和绑定。

通过研究, 此框架存在以下优点:

(1) 便于编程。Ajax class库提供Ajax引擎, 支持大部分的浏览器, 因而不需要开发Ajax引擎, 而且有类库提供Web Services的安全和会话, 不需要自己编写代码。

(2) 便于维护。一旦Web service发生改变, 只需要更新Web Service Proxy。

(3) 支持多层架构, 适用于大型分布式系统。

当然, 它也存在一些缺点:Web Service负载过多, 而且需要额外的网络流量, 这是以后需要改进的地方。

5 结束语

通过集成Ajax和Web Services技术, 可以提供给传统B/S模型更丰富的内容, 在本文讨论的框架中, 业务逻辑功能得到了有效的迁移, 有效的降低了服务器的负载, 提高了客户端处理器的使用率, 并具备了Ajax的优良特性。

摘要:Ajax是一种创建交互式网页应用的网页开发技术, Web Services是一种构建应用程序的普通模型, 介绍了Ajax和Web Services技术及其原理, 总结并分析了目前二者集成的Web框架, 指出了框架所存在的缺陷, 提出了一种基于Proxy模式的集成框架。

关键词:Ajax,Web Services,Proxy模式,集成框架

参考文献

[1]Jesse James Garret.Ajax:A New Approach to Web Applications[EB/OL].http://www.adaptivepath.com/publications/essays/archivesI000385.php.

[2]Dave Crane Eric Pascarello.Ajax in Action[M].Posts and TelecomPress, 2006.

[3]Paulson, Linda Dailey.Building rich Web applications with Ajax[J].Computer, Institute of Electrical and Electronics Engineers ComputerSociety, Piscataway, U.S.A., October, 2005:14-17.

[4]顾宁, 刘家茂, 柴哓路, 等.Web Services原理与研发实践[M].北京:机械工业出版社, 2006.

[5]王燕, 吴宇红, 徐坤.基于Ajax和Web Services的Web应用框架[J].西安:电子科技, 2006 (11) .

Ajax框架 篇3

Easy JWeb是基于java技术, 能实现企业级Java Web应用程序快速开发的MVC框架。Easy JWeb由四个部分组成:核心MVC、容器及通用业务逻辑封装、代码生成引擎及工具、Easy JWeb插件体系。Easy JWeb内置了对远程javascript脚本调用功能, 可以使用javascript直接访问服务端的业务组件。另外Easy JWeb通过使用prototype.js及其它一些来自开源社区ajax特效工具, 提供了丰富的Ajax支持。

1 Ajax在Easy JWeb中的运用

在Java Web开发中, 通常要产生一个HTTP请求的用户动作现在通过Java Script调用Ajax引擎来代替。任何用户动作的响应不再要求直接传到服务器———例如简单的数据校验, 内存中的数据编辑, 甚至一些页面导航———引擎自己就可以处理它。如果引擎需要从服务器取数据来响应用户动作———假设它提交需要处理的数据, 载入另外的界面代码, 或者接收新的数据———引擎让这些工作异步进行, 通常使用XML, 不用再担误用户界面的交互。

在本开发中, 当用户注册的时候, 我们希望用户在输入完注册用户名后, 假如其输入的用户已经存在, 则立即显示相应的提示, 这样的交互会使得应用程序交互界面变得更加友好。要实现这种功能, 可以通过在用户输入完用户名时, 触发一个事件, 这个事件执行一个程序, 自动到服务器端检测这个用户名是否存在, 若用户已经存在, 则给予相应的提示, 让用户可以及时选择其它用户名继续操作。

假如我们在服务器端有一个用户处理组件User Service, 这个组件中有一个检测用户是否存在的方法boolean check User Exists (String user Name) , 这个方法用来检测用户名是否存在, 若存在则返回true, 否则返回false。引入远程脚本调用, 则可以直接在注册页面中使用下面的javascript脚本来判断用户是否存在:

而调用这个函数的是用户名录入框的onChange事件, 大致如下:

在上面的代码中, 在check User Exist函数中, 调用了服务器端的User Service.check User Exists (user Name) 方法, 来判断用户名是否存在, 若返回的结果为true, 则在id为user Name_Msg的span中显示用户存在的提示。

2 Ajax在Easy JWeb中的具体实现

在这里我们通过在Easy JWeb框架中运用Ajax技术来实现一个用户名登录和验证的功能页面。要在Easy JWeb应用程序中使用Ajax功能, 需要下面几个步骤:

(1) 在web.xml文件添加如下的mapping:

(2) 在模板页面 (或客户端html页面) 中加入下面的两行:

(3) 在easyjf-web.xml文件中配置需要暴露给客户端的业务对象:

(4) 在模板页面 (或客户端html页面) 中通过下面的方式引用服务器端支持远程脚本访问的业务对象

(5) 在模板页面 (或客户端html页面) 中书写支持无刷新的远程脚本调用代码, 如下所示:

配置完成后启动web服务器, 然后在地址栏中输入http://localhost:8080/easyjf-jweb-0.8.0/ajax Demo.html, 即可看到Easy JWeb中A-jax运用的效果。

小结

Easy JWeb的脚本引擎Ajax是建立在prototype.js的基础上, 服务器端的调用处理引擎与Easy JWeb中的容器相结合, 可以通过AOP来作安全方面的拦截处理, 因此将更加灵活。与DWR等同类Ajax框架实现相比较, Easy JWeb的Ajax实现支持对象关联及级联处理, 使用更加简单。当然, 远程JS脚本调用支持只是Easy JWeb中的一个小小插件, Easy JWeb的Ajax实现只是一个普通的Easy JWeb Module (Action) , 因此更加容易扩展, 并能配合Easy JWeb的其它一些特性灵活使用, 将会是轻量级B/S应用开发中一个不错的选择。

参考文献

[1]夏慧军.深入浅出Ajax[M].北京:电子工业出版社, 2007.

[2][美]麦赫马夫.Ajax设计模式[M].北京:电子工业出版社, 2007.

Ajax框架 篇4

1 Ajax技术与Ajax框架

1.1 Ajax技术概述

Ajax(Asynchronous JavaScript and XML)是Web2.0中一类技术的总称,即“异步JavaScript和XML”[1]。Ajax并不是一门新的语言或技术,它实际上是几项技术按一定的组合方式发挥各自的作用,它包括:

1)使用XHTML和CSS标准化呈现;

2)使用DOM实现动态显示和交互;

3)使用XML和XSLT进行数据交换与处理;

4)使用XMLHttpRequest进行异步数据读取;

5)最后用Javascript绑定和处理所有数据;

这些技术通过Ajax模式链接在一起,在提高数据交互速度,改善用户体验等方面发挥着重要作用。Ajax提供了用户与服务器异步通信的能力,使用户从请求/响应的循环中解脱出来。借助于这门技术,在用户向服务器提交请求时,使用Javascript的XML-HttpRequest对象向服务器发出异步请求,以查询数据库或执行更新。当请求返回时,使用Javascript调用DOM相应的方法来更新相应的页面内容,而不是刷新整个页面。这个过程使web站点看起来就像桌面应用程序一样是即时响应的,可以说Ajax允许开发人员和设计人员创建具有桌面风格的Web应用程序[2]。

1.2 ASP.NET Ajax框架

ASP.NET Ajax框架作为微软发布的一整套Ajax解决方案,提供了众多其他框架难以企及的完善而强大的功能。使用Ajax框架可以提高开发效率,不必重复劳动,而且ASP.NET Ajax开发框架都经过了较为充分的测试,可以保证编写的代码质量。ASP.NET Ajax框架由服务端组件和客户端脚本库组成,这两者被集成在一起提供了一个功能强大的开发框架。

1.2.1 框架的服务器端部分

ASP.NET Ajax框架的服务器端部分,即为ASP.NET Ajax Extensions。它包括ASP.NET Ajax ControlToolkit,其对ASP.NET Ajax框架的客户端组件在服务器端进行了封装。这些组件为基于ASP.NET的应用程序提供了一种最方便的Ajax的实现方式:即采用一种ASP.NET完全一样的服务器端控件开发模型。作为对现有ASP.NET服务器端组件的扩展,ASP.NET Ajax Extensions提供的服务器端组件可以让开发者充分使用现有的ASP.NET开发知识就可以开发出带有强大Ajax功能以及丰富用户体验的客户端应用程序。ASP.NET Ajax服务器端是建立在ASP.NET框架之上的,并对ASP.NET的几个重要部分进行修饰和封装,便于ASP.NET Ajax使用。

1.2.2 框架的客户器端部分

ASP.NET Ajax框架的客户端部分,即MicrosoftAjax Library,是一个跨浏览器、跨平台的Ajax客户端的解决方案。它和ASP.NET服务器控件一样,是一个良好封装的并且可以运行于各种主流浏览器之上的客户端软件。它提供了丰富的组件而且开发者还可以Javascript编写自定义的组件。然后使用Javascript以编程方式将这些组件方便而又高效地连接起来,以构成功能是强大的、纯粹的客户端Ajax应用程序。

2 日语在线学习系统的设计

本学习系统的设计思想是以知识点为核心重组构造相关学习内容,并充分体现网络教学的优势和特点,以学习者为中心,创建一个具有充分参与性、自主性,灵活性的学习环境。首先对系统中的知识点进行科学设计,运用Ajax技术,清楚地表示系统中的知识点结构和各知识点之间的关系,以XML格式对数据进行存储、转换、传递、维护等,设计存储学生在线学习,在线测试,在线答疑,在线论坛,视频语音课程等所需要的各相关信息数据,确定学生随心所欲的抽取学习对象的算法,显示学生自己需要的网络学习页面,并给予学生个性化的在线测试,学习指导,在线论坛等服务。

本系统的整体构架设计为基于ASP.NET Ajax技术的三层架构,以便于本学习系统中的数据传递、存储、处理以及系统安全等。

本系统共分为三个子系统:用户登陆与注册、教师子系统和学生子系统,其功能模块如图3所示。

3 Ajax框架在本系统中的应用

Ajax框架在本系统中的应用包括用户登录和注册模块、视频语音课堂模块、在线测试模块、日历控件、成绩查询等所有需要交互的大部分操作。以下主要讲解基于Ajax框架研发的视频课堂模块,该模块有效解决了目前在线播放视频资源速度缓慢的问题,提供了一种全新的学习形式,让学习者可以在不刷新页面的情况下自由选择学习内容。

在视频详细信息页面中,用户可以查看视频教程的发布日期,发布人,点击率和视频教程的内容简介。当用户观看完视频教程后,可以通过留言功能发表自己的看法或进行交流。本系统中使用Embed元素播放多媒体,格式可以是WMV、MIDI、WAV、AU、MP3等,Netscape及新版的IE都支持。

使用Embed元素播放多媒体技术的代码如下:

视频课堂模块包括加载视频,观看视频、下载视频、发布留言和显示留言等,以下代码实现加载观看视频和发布留言。

在Web窗体的加载事件中需要判断视频是否是首次加载,如果是首次加载,需要绑定验证码、调用添加点击率的自定义方法和显示留言信息的自定义方法。实现代码如下:

观看视频主要通过自定义seeVi()方法来实现,自定义seeVi()方法通过视频的编号在数据库中取出视频等详细信息,交将这些信息存放到定义的全局变量中。实现代码如下:

发布留言可以使用户相互之间进行交流和讨论,通过“发言”按钮的Click事件来实现。在Click事件中需要判断用户是否登录,如果登录将发言人保存为用户的登录名,如果未登录将发言人保存为游客。为了防止用户使用非法程序连续发言使数据库中的数据量过大,这里使用了验证码功能。实现代码如下:

4 结束语

日语在线学习系统中,大部分涉及到交互的操作都结合了ASP.NET Ajax框架技术,实现了数据的异步请求操作。实际使用中,该系统运行稳定,系统响应速度快,执行效率高,受到我校日语专业师生的好评。

摘要:在教育日趋信息化的今天,日语教育同样需要向多元化发展,以适应时代的需求。该文从研究与开发日语在线学习系统的必要性出发,探讨日语在线学习系统中Ajax框架技术。

关键词:日语在线学习系统,Ajax框架

参考文献

[1]柯宏,刘卫忠.AJAX在数据广播中的应用及实现[J]电视技术,2006(8):80一81,88.

[2]麦赫马夫.AJAX设计模式[M].杨仁和,译.北京:电子工业出版社,2007:20.

Ajax框架 篇5

在应用程序开发过程中,一个优秀成熟的框架既可以提高开发效率,又可以保障系统质量。HSSA整合框架是目前众多软件企业主流的应用技术,也是J2EE未来发展的趋势。与传统的Web开发模式相比,Hibernate的引入避免了手工编写访问数据持久层的方法,Struts MVC的三层结构使流程控制、业务数据处理、结果显示分离开来,Spring利用延时注入思想组装代码,大大增强项目的可扩展性,降低维护成本,提高软件开发效率,AJAX技术极大地改善Web用户的交互体验。

企务通系统是电子政务应用的基础,是人们常说的无纸化办公。一个企业实现企业办公自动化的程度也是衡量其实现现代化管理的标准。由于早期开发技术的限制,现有部分企务通系统功能不完全,用户界面不够友好,且形式固定,不便于系统的维护和升级。本文结合企务通系统应用实例,介绍了HSSA技术,并设计开发了一个基于HSSA的Web应用系统。

1 系统总体设计

1.1 HSSA总体架构

HSSA整合架构如图1所示。

Hibernate[1]是一个开放源代码的对象关系映射框架,是对JDBC的轻量级对象封装[1]。Hibernate内部封装了JDBC访问数据库的操作,通过把数据封装成对象,向上层应用提供了面向对象的数据库访问API,实现了与数据库无关的持久层,降低持久层的复杂度,使开发者可以专心于应用程序的业务逻辑,而不用关心底层的数据库结构。

Spring是一个以依赖注入(DI)原则和面向方面编程思想(AOP)为基础的轻量级框架。Spring框架由7个定义良好的模块构成[2],即Spring Core、Spring Context、Spring AOP、Spring DAO、Spring ORM、Spring Web、Spring MVC。基于使用JavaBean属性的Inversion of Control容器是Spring架构的基础[2]。它可以很容易地替换业务对象,只要用JavaBean属性和配置文件加入依赖性,然后就可以很容易地在需要时替换具有类似接口的协作对象。Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。

运用MVC设计模式的Struts架构[3]在总体上实现了对逻辑层、显示层和控制层的分离。运用Struts架构首先可以多个视图共享一个模型,其次模型是子包含的,与控制器和视图保持相对独立,所以可以很方便地改变应用程序的数据层和业务规则,并提高了程序的灵活性和可配置性。但是它也有一定的不足之处,它没有对复杂的持久层的支持,也就是说当数据要存入数据库时Struts没有作相应的处理,还是和传统的开发一样要直接通过JDBC SQL与数据库交互。但是Hibernate就可以弥补Struts框架的不足。

AJAX由几种蓬勃发展的技术以新的强大方式组合而成[4],主要包括:HTML/XHTM、CSS、DOM、XML、XSL、XMLHttpRequest、JavaScript。AJAX的核心理念在于使用XMLHttpRequest对象发送异步请求,其为运行于浏览器中的JavaScript脚本提供了一种在页面内与服务器通信的手段,它使用户能通过JavaScript向服务器提出请求,并处理响应,而不会阻塞用户。Ajax在真正意义上实现了“按需取数据”、局部更新页面,从而既减轻了服务器负担又加快了响应速度,缩短了用户等待的时间,提高了应用程序的效率,节约了网络资源。

1.2 系统主要功能模块

下面就以某企业的企务通系统为例,讨论在开发过程中如何整合HSSA技术来实现框架的拓展。企务通系统结构如图2所示。本文主要以企务通系统中人事管理模块加以说明,人事管理模块主要负责实现管理人员对人事人员信息的增加、修改、删除和查询功能。

本系统利用Struts架构作为系统的整体基础架构,由其负责MVC的分离,降低系统总架构的耦合性;Ajax则作为Struts在表示层上的补充,负责在页面进行监听和异步处理。在Struts架构的模型部分,利用Hibernate架构来提供持久层支持,业务层用Spring支持。具体做法是用面向对象的分析方法根据需求来提出一个模型,将这些模型应用Java语言实现出基本的Java对象,然后写出基本的DAO接口,并给出Hibernate的DAO实现,这样就可以通过Hibernate框架实现的DAO类来实现Java类与数据库之间的转换和访问,然后由Spring来完成业务逻辑处理。

系统开发环境:MyEclipse6.0,数据库服务器为MySql,Web服务器为Tomcat5.5。

2 HSSA在系统中的应用

2.1 Hibernate在持久层的应用

对于Hibernate的应用主要是通过两个配置文件即O/R映射配置文件和hibernate.cfg.xml配置文件。O/R映射的配置文件主要是表达出持久类与数据库表的映射关系。Hibernate通过O/R映射文件将数据库表映射为Java类,表中的每条数据作为一个类实例,而数据列值则映射为实例属性。其属性可以作为一般值存在,也可以是指向其它实体的关联,其在关系型数据库中体现为数据表的外键。这样对数据库的操作就可以转化为对持久化类的操作。在设置映射文件时要特别注意的就是各种关系的映射,如one to one、many to one、many to many、one to many等。在应用运行时,Hibernate将根据这个映射文件来生成各种SQL语句,实现数据的访问。

在Hibernate的hibernate.cfg.xml配置文件中,定义链接池访问数据库的URL资源定位地址、数据库名称、数据库方言MySQLDialect、数据库链接驱动程序等Hibernate运行需要的主要属性信息。

2.2 Spring的应用

Spring主要负责处理应用程序的业务逻辑和业务验证,管理事务,管理业务层对象之间的依赖,并从表示层中提供一个上下文给业务层获得业务服务以及管理从业务逻辑到持久层的实现[5]。通过Spring的IoC模式来装配业务组件,如DAO对象,使系统更具扩展性。通过Spring AOP(面向方面)思想,来集中处理具体业务,更好地降低了务逻辑层和系统其他部分的耦合度。框架整合的解决方案是将Struts动作管理委托给Spring,首先需要在Struts的相关模块配置文件中导入Spring,以人事管理模块为例,在其配置文件中加入:

<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">

<set-property property="contextConfigLocation"value="/WEBINF/config/spring/action-em.xml"/></plug-in>

这样该aciton使用的业务方法均可在action-em.xml查出。Spring的业务处理可以概括为建立业务服务对象接口,然后实现这个接口,最后实现接口和Dao对象的连接。由于Spring的AOP实现机制,任何注册到Spring框架中的bean如果实现了某个接口,则在得到这bean时,只能将其下溯造形成其接口再进行操作,而不能直接下溯造形成具体的类型进行操作。这也就强制要求编程人员要面向接口编程,使程序员能够从接口的角度考虑程序设计,从而降低了程序的耦合度。Spring实现接口和Dao对象的连接,需要在Spring的配置文件中添加相关代码,本文以添加新员工模块为例,在该模块Spring配置文件action-em.xml中加入:

<bean name="/em/AddNewPerson"

class="com.ebusiness.em.struts.action.AddNewPersonAction">

<property name="encourageNumDao"ref="eAddNewPersonNumDao"></property>

</bean>

在系统中,当执行AddNewPersonAction时,若遇到eAddNewPersonNumDao,即从此配置文件中查询,得到其引用为AddNewPersonNumDao,而AddNewPersonNumDao的源数据需要从ApplicationContext-em.xml获得:

<bean id="AddNewPersonNumDao"class="com.ebusiness.em.spring.dao.impl.AddNewPersonNumDaoImpl">

<property name="hibernateTemplate"ref="myHibernateTemplate"></property>

</bean>

即可得到AddNewPersonNumDaoImpl的源数据。此外,还定义了hibernateTemplate,这是由于此处的DAO层是使用Hibernate实现的,如果我们将DAO层的实现技术改为JDBC、JDO、DAO等,只需要实现相关DAO接口,并在Spring配置文件里,将该DAO的bean实现类名替换为新实现的类名即可,如此就可以将改动控制在最小的范围之内,不会因为DAO层的变化而引起程序结构大规模的改变,显得非常灵活,具有良好的可维护性。

2.3 Struts的应用

Struts的应用主要基于两个XML配置文件,分别是Web.xml和struts-cofig.xml文件。Web.xml文件是配置所有web应用的,为Struts应用配置Web.xml文件最重要是配置ActionServlet。struts-cofig.xml文件是struts专用的配置文件,在Struts整个工作流程中起着关键作用,它用来装载和配置Struts框架使用的各种组件,比如ActionForm Bean、ActionForward、Action Bean等。控制器按Struts-config.xml文件中的配置来决定业务流的转向,开发人员在业务流控制方面的主要工作是对Struts-config.xml进行配置,以人事管理模块的“添加人员功能”为例,Struts-config.xml的部分代码如下:

<form-beans>

<form-bean name="AddPersonForm" type="com.ebusiness.jm.AddPersonForm"/>

</form-beans>

<action-mappings>

<action

path="/jm/AddPerson"

type="com.ebusiness.jm.AddPersonForm"

name=" AddPersonForm"

scope="request"

validate="false"

input=""

parameter="method">

<forward name="add"path="/jm/AddPerson.jsp"context-Relative="true"/>

</action>

</action-mappings>

Struts控制器组件主要负责接收用户请求、更新模型以及选择合适的视图组件返回给用户,它在模型和视图之间起着中间调度作用。从View层传来的用户请求分发给哪个Action Bean进行处理以及将处理结果通过哪个JSP显示给用户是由控制器来完成的。控制器ActionServlet在收到客户端请求后,将会按照这个配置文件,在JSP页面进行转发并执行验证和填充等业务逻辑操作。通过配置文件中的FormBean对页面请求或返回页面的数据进行封装,使数据持久层和业务逻辑分离,并提供它们之间的接口。当页面发来的请求数据和处理完业务逻辑后的返回数据都按FormBean中的格式进行封装后,才转给下一个业务逻辑处理或将页面返回给用户,这样做的好处是数据库和业务逻辑发生微小的变化时,有时只要修改FormBean,就可以适应这种变化。

2.4 Ajax的应用

本系统采用Ajax技术来改善系统的交互性和体验性。下面以Ajax技术实现系统中的“多级下拉框联动”来说明Ajax在表示层的应用。

下拉框是JSP页面中常用的组件,对下拉框的应用经常会存在这样的需求,就是当一个下拉框的选项发生改变时,与其相关联的另一个下拉框中的内容也要随之动态改变,两个选项之间存在“一对一”或“一对多”的关系。比如企务通系统的通讯管理模块中的消息发送子功能模块,有时需要给某个部门的某部分人发送消息。在“部门”下拉框中选择“人力资源部”部门后,“部门内人员”下拉框对应的人员信息就应是“人力资源部”的所有成员名单,然后用户就可以方便选择名单中的成员。实现这一个过程也可以用传统方法,但是页面闪烁频繁,页面重载率太高;而在这个过程中使用Ajax技术,页面被局部的刷新,对于相同的访问量,后者的速度比前者快得多,通信量大大降低[6]。

整个过程需要用到本框架的两个模块来进行处理,一个是异步通信模块,一个是DOM模块。异步通信模块用来动态查询成员名单数据,DOM模块封装了页面元素,可以用一个简单的方法来进行功能的调用,将查询结果直接注入到下拉菜单中。

利用本框架的提前绑定事件机制,将部门菜单的change事件和getNameList事件绑定,当部门下拉菜单被用户选择时,便会调用getNameList函数启用框架的异步通信机制,取得数据。从服务器端传过来的数据分为两部分,第一部分是存储的值,第二部分是存储的名字用“|”分离。在每个部分,不同的值或名字用“&”分割,主要代码如下所示:

<script type=”text/javascript”src=”classloader”</script>

<script>

classloader.inelude(’AjaxManager”);

classloader.include(“DOMObject”);

classloader.include(“EventObject“);

BaseObject.addBeforeOnload(function(){

EventObject.addEventHandler(“Department”,”change”,getNames);});

Function getNames()

{Var id=”Department” ;

Var node=DOMObject.(id);

Var obj={

Method:”get”,

url:”actions/getStaffNames.jsp”,

content:{department:DOMObject.v(id)},

onSuccess:function(data){

var value=data.Split(“|“)[0].Split[“&”];

var name=data.Split(“|”)[1].split[“&”];

addSelectionItem (DOMObject.(id),name,value;},

onError:function(e){e.printlnfo():

altertime:-1};}

addSelectionItem函数用来填充指定ID的下拉菜单中的选项值,输入参数为下拉菜单的ID、各个选项的名值对。

{Function

addSelectionItem(id,name,value)

v=value:

n=name;

DOMObject.addElement(id,a,b);

}

3 结 论

采用HSSA集成架构开发的系统,无论在整体架构还是在局部的复杂业务模型中都有了更低的耦合性,而且提高了灵活性与可维护性,在性能速度、交互性和体验性上也有很大的改善,这样不但充分发挥了四者的优点,而且避免了单独使用这些框架开发系统的不足。

参考文献

[1]孙卫琴.精通Hibernate:Java对象持久化技术详解[M].北京:电子工业出版社,2006.

[2]罗时飞.精通Spring[M].北京:电子工业出版社,2005.

[3]孙卫琴.精通Struts基于MVC的Java Web设计与开发[M].北京:电子工业出版社,2005:95-127.

[4]丁娜.基于AJAX的WEB2.0技术研究[D],浙江大学,2007.

[5]邢翠芳.基于Spring的政务系统通用框架的研究与应用[D].大连海事大学,2008.

本文来自 360文秘网(www.360wenmi.com),转载请保留网址和出处

【Ajax框架】相关文章:

规划框架05-04

社会框架05-05

学习框架05-14

行动框架05-18

实现框架05-20

传播框架06-04

框架博弈06-10

搭建框架06-17

ssh框架05-22

员工手册框架05-26

上一篇:婚姻不是万能药下一篇:房屋设备资源