基于AJAX的解决方案
AJAX为客户端技术,在服务器端的应用常使用功能强大的J2EE支持开发,我们采用二者相结合的方式来进行设计。AJAX引擎发出XMLHTTPRequest的目的只是为了从服务器端得到一个数据响应,而对服务器端响应的产生方式并不敏感。因此,为使AJAX引擎能够在服务器端得到强大支持,可在服务器端Servlet容器中设置一个专用的Servlet来处理AJAX引擎发出的请求,我们将这个Servlet定义为AjaxServlet,它主要完成如下任务:1.接收AJAX引擎发出的请求;2.解析请求参数;3.调用Bean或EJB等进行业务逻辑处理;4.处理响应内容并向客户端发出响应。
尽管在AjaxServlet 中可直接存取持久化数据或持久化业务逻辑,但是我们并不鼓励这样做,因为这会破坏系统的整体结构,影响系统的易维护性和可扩展性。这些工作可借助Bean、EJB等来完成。
AJAX引擎发出XMLHttpRequest请求时,将请求的URL地址指向服务器端声明的映射到AjaxServlet的地址,AJAX引擎在浏览器端向服务器端的Servlet发出请求时可携带多个参数来限定所需要的数据和操作。
搭建开发环境
我们采用J2EE技术进行服务器端系统的开发,通过Java Servlet和Java Server Pages(JSP)建立Web页面,通过EJB实现业务层应用的开发。
我们采用J2ME 开发环境进行客户端系统开发。首先下载安装Java-SDK,这是开发Java程序必备的开发包;其次需要有移动设备模拟器,这是从Java开发具体到J2ME的一步,模拟器根据要开发的应用所使用的手机来选择,通用的是WTK(我们选用WTK2.5.2版本);最后下载一个开发软件,我们选用Eclipse集成开发环境,在使用Eclipse前需要安装Eclipse-ME插件。
AjaxServlet的实现
为实现客户端与服务器端的数据交换,我们采用JSON(JavaScript Object Notation)作为数据交换格式。JSON是轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换语言。
在J2EE服务器端AjaxServlet代码框架如下:
//设置Servlet的Content Type,取消本地缓存
response. setcontenttype("text/javascript; charset=UTP-8");
response.setheader("Cache-Control","no-cache");
response.setHeader("Pragma", "no-cache");
//解析参数
if(null!=request.getattribute("paraname1")){
paravalue1=request.getattribute("paraname1").tostring();
}
//解析其他参数
printwriter out=response.getwriter();
//在此可以调用JDBC、EJB等进行数据的存取、计算及业务的处理
string resultcontent=“<matrix><status>TextInformation</status></matrix>”;
//将合法格式的JSON数据写到response中
out.write(resultcontent);
客户端页面的JavaScript通过异步传输XMLHTTP发送参数到Ajax Servlet,经上述接收处理返回符合条件的数据。
本文基于WAP2.0,采用AJAX应用程序开发技术,在J2ME与J2EE开发环境下构建移动学习平台,探索相关技术的实现方法,重点介绍通过AJAX技术实现终端数据异步更新的方法,对比相关技术的特点,采用该方法开发的移动学习平台具有响应迅速、占用带宽少、交互性好等优点。在今后的研究中还要加强客户端与服务器端交互功能的深入开发,以期能够更好地提高系统应用效率。
(作者单位1为曲阜师范大学计算机科学学院,2为日照市教育局)
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。