admin 管理员组

文章数量: 1086019


2024年4月13日发(作者:学习php需要多久)

维普资讯

第33卷第3期 西南民族大学学报・自然科学版 

Journal of Southwest University for Nationalities・Natural Science Edition 

文章编号:1 003.2843(2007)03—0685.04 

基于AJAX技术的MVC模式WEB应用 

张阳 

(四川大学计算机学院,成都610064) 

摘要:MVC模式很好的解决了当前WEB应用开发的种种弊端,AJAX技术则大大改善了WEB应用的用户体验.研 

究了MVC设计模式后,本文在MVC模式基础上,加入AJAX技术,构建一种新的WEB应用模型,并在具体应用中实 

现. 

关键词:MVC模式:AJAX;WEB应用 

中图分类号:TP393 文献标识码:A 

1 引言 

随着信息技术和网络技术的迅速发展,MVC(Model。View。Controller)模式对于Web应用的开发无疑是一种 

非常先进的设计思想,无论编程人员选择哪种语言,无论应用多复杂,它都能提供最基本的应用模型分析方法, 

帮助企业架构清晰的网络应用设计框架l3】.随着J2EE的快速发展及成熟,它已经成为在J2EE平台上推荐的一种 

设计模型.但在B/S结构的网站应用中,用户界面提交HTML请求,都必须返回—个完整的HTML页面,用户 

需要花费带宽去下载整个HTML页面,使得用户在使用浏览器刷新速度较慢.利用AJAX技术可以很好的解决 

此问题,他可以快速地在浏览器显示无穷的信息而无需重新加载页面,减轻了服务器的负担,把以前服务器的部 

分工作转到客户端,提高了Web应用程序的交互性. 

2 MVC模式介绍 

MVC ̄lJModel。View。Controller的缩写,最初由Smalltalk设计,该模型将功能划分为相互关联的3个组件: 

模型(Mode1)、视图(View)和控制器(Controller)….如图1所示,模型表示应用程序的业务逻辑,获取业务数据并 

按照业务处理规则处理业务数据,所有的业务操作都在该层,是应用程序的核心.视图是整个应用程序的外在 

表现,主要功能是模块的显示以及根据业务处理结果生成返回至客户端的页面.控制器主要功能是将模型和视 

图联系在一起,是—个分发器,不做任何数据处理. 

MVC模式很好地实现了数据层、显示层、业务层的分离,层次清晰和独立,哪个层需要修改,只需修改该层 

代码,不影响其他层的代码,便于调试和维护.MVC模式中把系统分成三层、有利于开发中的分工,提高了开发 

的并发度.独立的分层还有利于组件的复用,提高了代码的可重用性及可扩展性. 

图1 MVC模式结构图【4】 

收稿日期:2006.10.31 

作者简介:张I ̄N(1982一),女,四川大学汁算机学院硕士研究生 

维普资讯

686 西南民族大学学报・自然科学版 第33卷 

3 AJAX简介 

AJAX(Asynchronous JavaScript and XML)是一个结合了Java ̄术、XML以} ̄.JavaScript的编程技术,使用客户 

端脚本与we 艮务器交换数据的Web应用开发方法.AJAX其实并非一种新的技术,而是网络浏览器里已有的三 

项重要特征的结合: 

1)浏览器可通过JavaScript和Web Server通讯. 

2)JaVascript能在不刷新页面的情况下动态地改变页面的值. 

3)浏览器能解析XML文件. 

AJAX打破了使用页面重载的惯例.如图2所示,纯粹的AJAX应用,浏览器都只向JavaScript发送消息, 

JavaScript使用xmlHtqp向服务器发送请求,然后服务器在XmlHttp的回复中带上相关消息,最后JavaScript分析这 

些消息,在不刷新整个页面的情况下动态地改变页面的数值.这样,Web页面不用打断交互流程进行重新加裁, 

就可以动态地更新.AJAX在互联网服务器和个人电脑之问充当缓冲器,巧妙地令服务非常顺畅,让人以为没有 

中断,并且减轻了服务器的负担. 

图2两种应用模式的对比【 1 

4架构实现 

虽然MVC模式较好的解决了当前WEB应用开发中的诸如代码扩展性、维护性、重用性及开发效率低等问 

题,但是传统Web应用采用同步交互过程,即使很小的请求都要重新刷新页面,大量无用数据重复下载,服务 

器的负担较重,用户也要经过漫长的等待时问.在实际应用中,类似投票等一些无关痛痒的场景,如果提交过程 

等待时间过长,很多的用户就会直接忽略而不参与,但是如果使用了Aja)(则可以大大缩短等待时问,从而使更多 

的用户会加入进来.为减轻服务器负担以及提高网站模式性能,在MVC模式中加入AJAX技术.如图3所示: 

图3基于AJAX技术的MVC设计模式 

维普资讯

第3期 张阳:基于AJAX技术的MVC模式WEB应用 687 

(1)视图(View):用户界面,本模型中为JSP页面.视图的处理不包括在视图上的业务流程的处理,仅限于 

视图上数据的显示、采集,以及用户的请求,所以一个应用可能有很多不同的视图.业务流程的处理交予模型 

(Mode1)处理. 

(2)模型(Mode1):应用程序的核心,本模型中为业务类.制订了某一个业务的流程,状态的处理,以及规则. 

通过控制层(Controller)的调配之后,模型接受视图请求的数据,根据业务规则调用相应的数据处理方法(Dao类) 

处理业务,并返回最终的处理结果.为了硬模型(Mode1)中业务流程处理和数据处理更加独立和规范,把每个模 

型的数据库处理操作封装在数据处理类(Data Access Object,DAO类),业务类并不做数据库操作.数据处理类实 

体对象的数据持久化,所有有关数据库的操作只限制在该类中. 

(3)控制器(Controller):接受视图请求的用户接口,本模型中为控制类.控制层只是一个分发器,不做任何 

数据处理,将模型与视图联系在一起.控制器根据用户请求,不处理业务信息,而是选择相应的模型,并把用户 

的信息传递给模型,模型处理之后,选择符合要求的视图返回给用户.一个模型可能对应多个视图,一个视图可 

能对应多个模型. 

按照MVC设计模式,可以使得系统在更高层次上提高可复用性和可维护性.由于模型返回的数据不带任何 

显示格式,因而这些模型也可直接应用于接口的使用.一个应用被强制分离为三层,业务流程或者业务规则的 

改变只需改动MVC的模型层【4l,本模型中业务类;数据库操作的改变只需改动数据处理类,本模型中DAO类. 

为了加快页面响应速度,在MVC模式中加入AJAX技术,但在实际应用中并非每个页面都需采用AJAX技 

术,本文在MVC模式中加入AJAX技术,Yf ̄,-i MVC模式稍做修改,以适用于不同页面.在未使用AJAX引擎 

的页面中,用户通过视图(View)提出请求,控制器(Controller)接受视图请求,但并不处理,他通过读取配置文件 

actionmap.xml找到相应的动作处理类(Action类).配置文件actionmap.xml定义了每个Action类的映射,每个动 

作使用一个Action类.Action类处理和响应客户端传来的数据,并调用相应的业务类(Mode1)处理业务,业务类再 

调用数据处理类(DAo)做数据库操作.在使用AJAX的页面中,用户通过JSP页面内置AJAX对象使用异步方式 

向控制器提出请求,控制器再调用模型做业务处理,模型再调用数据处理类做数据库操作,客户端AJAX对象的 

onreadystatechange方法监听,受到数据便对页面做出更改. 

5应用实例主要代码 

(1)创建XMLHttpRequest 

XMLHttpRequest是一个JavaScript对象,AJAX大量使用了JavaScript和AJAX ̄I擎,而这个取决于浏览器的 

支持.比较新的浏览器, ̄[IMicrosoft IE 5.0,Mozilla 1.0,NetScape 7.1,Apple Safari 1.2,Opera 7.6及以上版本才支 

持,Mozilla,Safari虽然也支持AJAX,但是提供xMLHttpRequest的方式不一样.所以使用AJAX的程序必须进行 

针对各个浏览器的兼容性测试,使程序能够跨浏览器运行. 

主要代码: 

function createXMLHttpRequest0 

) 

{ 

//使能在Mozilla,Safari等运行 

//使能在lE浏览器上运行 

else if(window.XMLHttpRequest) 

if(window.ActiveXObject) { 

xmlHRp=new XMLHttpRequest(); } 

xmlHttp=new ActiveXObject CMicrosoft.XMLHTTP”); ) 

(2)发出HTTP请求 

主要代码: 

function votechange() 

∥异步请求连接 

{ createXMLHttpRequest0; 

xmlHRp.open(”POST”,urlstring,true); 

旨定返回信息处理函数 

xmlHttp.send(nul1); 

xmlHttp.onreadystatechange handleStateChange; 

) 

var urlstring=”目标URL”; 

维普资讯

688 西南民族大学学报-自然科学版 第33卷 

open方法建立到服务器的新请求,第—个参数为http请求方法,可以为GET和POST,本文使用POST方法; 

第二个参数是请求的URL地址,可以为绝对地址也可以为相对地址;第三个为指定此请求是否为异步方式,默认 

为true.如果为真,当状态改变时会调用onreadystatechange屙陛指定的回调函数.Send方法向服务器发送请求.一 

(3)返回信息处理 

主要代码: 

function handleStateChange() catstring xmlH ̄p.responseText; 

. 

} { 

/,定义服务器返回变量 

var catstring=…’; 

} 

if(catstring!:IIII&&catstring.1ength>0) 

//信息已返回 

if(xmlHttp.readyState==4) 

{ 

{ 

//处理返回情况 

if(catstring==”……”) 

∥页面正常 

ifxmlH ̄p.status==200) 

{ 

…… 

} 

} 

//月匣务器返回的请求响应文本 

在本实例应用中,服务器返回信息之后,由handlestatechange()函数处理返回信息,responseText方式表示返 

回信息当字符串处理,使用responseXML方式则当返回信息为XML文档.变量catstring存放返回字符串,可以 

定义多种返回类型. 

6 结束语 

AJAX使用XMLh ̄p对象,要依靠用户浏览器的支持.一些低版本的浏览器或者客户端设置教本禁用都将 

页面无法正常使用. 

由于AJAx更新页面内容的时候并没有刷新整个页面,因此数N ̄!g-N,可能导致一些业务上处理的缺陷, 

并且网页后退功能失效.例如投票页面,在当前用户投票的同一时间,可能还有其他用户投票,因为未刷新页面 

用户投票之后看不到当前最新的票数情况.AJAX技术减少了页面重载次数,减轻了服务器负担, 大大改善了 

WEB应用的用户体验,因此现在AJAX的WEB应用越来越广泛.本文在MVC模式中引入AJAX技术,加强了 

整个WEB应用程序的可移植、可扩展以及交互性,提高开发和维护效率,使用户获得更愉快的网络体验.这种 

模式为程序设计 开发、维护人员,终端用户以及服务器都带来了极大的便捷之处. ’ 

参考文献: 

【1】PAULSON L D.Building rich web applications with Ajax[J1.Computer,2005,38(10):14-1 7. 

com/publications/essays/archives/000385.php.  ‘

、 

【2】GARRETT J J.Ajax:A New Approach to Web Applications.AdaptivePath, February 2005[EB/OL].http://www.adaptivepath 

【3】普措才仁.Jsp/Servlet构建三层管理信息系统[J】.西北民族大学学报:自然科学版,2004,25(55):25-28. 

【4】冉春玉,白炳杉.MVC模式及Struts框架应用研究[J】.武汉理工大学学报,2004,26(6):66-69. 

【5】赵小峰.利用AJAX构建动态Web应用[J】_深圳信息技术职业学院学报,2006,l4(4):26.30. 

MVC Web application based on AJAX 

ZHANGYang 

(School of Computer Science,Sichuan University,Chengdu 6 1 0064,P‘R.C.) 

Abstract:MVC model is a perfect solution to the drawbacks of the current Web application development.AJAX has greatly 

improved the users’experience.Research on the MVC pattern,based on it,adding AJAX technology,a new Web application 

model is constructed in this paper,and it is implemented. 

Key words:MVC model;AJAX;Web application 


本文标签: 页面 应用 处理 模型