欢迎来到学术参考网

基于XMLHTTP组件实现电子政务平台下的站内消息系

发布时间:2015-07-13 09:46
摘 要 本文以B/S结构的电子政务内网系统为背景,采用XMLHTTP和JSP技术,架构并实现了电子政务平台下的站内即时消息系统。
关键字 XMLHTTP 站内即时消息 电子政务 B/S结构

0 引言

随着Internet技术的兴起和不断发展,B/S(Browser/ Server)结构,即浏览器和服务器结构,是对C/S结构的一种改进,在B/S结构下的开发模式已经被越来越多的人们接受,具有升级维护方便,容易扩充,客户端只用WWW浏览器,重用性好,可适用在广域网等优点。本文以B/S结构的电子政务内网系统为背景,在该系统下设计并实现站内即时消息系统。在不使用如QQ,MSN等通讯软件的情况下,达到站内用户即时交流的目的。

1 系统背景

互联网的飞速发展使的电子商务和办公自动化越来越普及,加上网络安全技术的不断进步,政府部门内部的网络化办公、电子化已是大势所趋。电子政务系统应用而生。电子政务主要包括三个组成部分:一是政府部门内部的电子化和网络化办公;二是政府部门之间通过计算机网络而进行的信息共享和实时通信;三是政府部门通过网络与民众之间进行的双向的信息交流。出于安全性的考虑,一些部门可能限制员工使用QQ,MSN等即时消息工具,但员工之间又存在这种即时交流的需求,在政务系统的内网环境下开发一个站内即时消息系统显的尤为重要。

2 XmlHttp组件介绍

XmlHttp是一套可以在Javascript、VbScript、Jscript等脚本语言中通过Http协议传送或从接收XML及其他数据的一套API。现在的绝大多数浏览器都增加了对XmlHttp的支持,IE中使用ActiveXObject方式创建XmlHttp对象,其他浏览器如Firefox,通过pRequest来创建Xmlhttp对象。XmlHttp组件最大的用处是可以更新网页的部分内容而不需要刷新整个页面。多应用于聊天室、文字直播等方面。
XmlHttp提供客户端同Http服务器通讯的协议。客户端用Xmlhttp对象的Open方法向服务器发送Xmlhttp请求,打开一个到服务器的连接,连接可以是同步连接,也可以是异步连接,同步连接客户端等待服务器返回消息后才去执行其它操作,而异步连接时客户端不用等待服务器的响应,服务器返回的数据类型都以下几种。
(1)responseTxt:将响应的信息作为文本字符串返回;
(2)responseXML:将响应信息格式化为Xml Document对象并返回;
(3)responseStream:将响应信息视为Stream对象;
(4)responsevBody 将响应信息正文以unsigned byte数组形式返回;
客户端调用XmlHttp的过程比较简单,一般有以下几个步骤:
(1)创建XmlHttp对象,IE中一般使用ActiveXObject方式来创建。
(2)打开与服务端的连接,同时定义指令发送方式,服务网页(URL)和请求权限等。
客户端通过Open命令打开与服务端的服务网页的连接。与普通Http指令传送一样,可以用"GET"方法或"POST"方法指向服务端的服务网页。本文的例子中指向了这个文件。
(3)发送指令,也即发送XmlHttp的请求,发送时也可以携带数据。
(4)等待并接收服务端返回的处理结果。本文代码部分是将返回的数据显示在网页的一个弹出对话框里面。
(5)释放XmlHttp对象。

3 系统结构设计

由于电子政务系统包括内网,公网以及专网的建设,本文主要针对内网的架构进行阐述。前台程序应用当前流行的动态网站开发语言Jsp,Web 服务器使用Weblogic 8.1,后台数据库是Oracle 9i,在政府部门内部架设自己的Web服务网络,实现电子政务的办公自动化,网络化。网内用户可以向Web 服务器发送Jsp请求,Web 服务器根据业务逻辑操作数据库,将得到的数据返回到客户端。内网的框架图见下。
图1 系统框架图
用户要发送信息时,先在前台的Jsp页面填写好收信人和消息的内容,提交表单,将数据存入后台的数据库,每个用户间隔一段时间就向Web服务器发送XmlHttp请求,和Web服务器建立一个连接,查询是否有本用户未读的消息,如果有,返回数据并显示出来,业务逻辑见下图。
图2 业务逻辑图

4 代码分析

在系统的主页面中加入如下的一段Javascript脚本语言,其作用就是间隔一段时间向web 服务器发送Xmlhttp请求并和服务器建立一个异步连接,请求服务器执行一个负责查询的Jsp文件,并显示返回的数据,下面列出了主要的代码。
script language="javascript"
function GetResult(){
var test = new ActiveXObject("P");
//新建一个XMLHTTP对象
("POST","http://localhost:",false);
//使用POST方法打开一个到服务器文件的连接,false表示以异步方式通信
();
//发送xmlhttp请求,send方法可以加参数携带发送数据;
var str=unescape(seText);
//接受服务器以字符串类型返回的数据,
并解码;
if((f("")-1)||(f("Error")-1)){}
Else{
var show=(‘消息‘,"_blank");
();
(str); }
//返回的数据如果为空或者出现运行错误,则不输出信息,否则弹出对话框显示消息;
setTimeout("GetResult()",15000);
//间隔15秒建立一次连接;
}/script
Web 服务器接受到请求后会执行文件,返回得到的数据,主要代码见下面。
%
……….
//连接数据库并执行查询语句
String From = ing("infofrom");
//得到发送人信息;
String Info = ing("noticeinfo");
//得到消息内容;
String str="trtd"+From+"/td/tr trtd"+Info+"/td/tr";
//组合返回到客户端的字符串str
(str);
//返回数据到客户端;
…………
//关闭连接和数据库;
%

5 实验结果

进入消息系统点击发送消息链接,就会出现如下图的界面,选择好收信人,填写要发送消息的内容,点击发送按钮就完成了消息的发送。
图3发送消息界面
当以科长的身份登录系统或者科长已经登录了内网系统时,会在屏幕上弹出一个接收消息的对话框,这样便实现了在线用户之间的消息交流。

图4 接收消息界面

6 结论

本文通过架构并实现了电子政务内网系统中站内消息的即时交流,对于一些可能限制员工使用QQ,MSN等即时消息工具的部门,只需在部门内部架构自己的Web服务器,采用上面的技术可以实时交流的目的。
这样设计的基本思想是每间隔一定时间客户端向Web服务器发送XmlHttp请求,建立异步连接,接受响应消息。为了达到即时交流的目的,客户端频繁的和服务器建立连接,如果客户数量比较多的话,网络的速度可能会受到影响。但在一般的部门,完全可以通过web服务达到在线用户即时交流的目的。

参考文献

[1]龙马工作室.jsp+oracle组建动态网站[M].北京:人民邮电出版社.2005年
刘彬.jsp数据库高级编程[M].北京:清华大学出版社,2006
XmlHttp中文参考网站:
刘德山,使用XMLHttp组件实现浏览器与服务器的通信,电脑学习[J], 2002年 第6期
陈永凯.顾绍元,基于Ajax技术实现浏览器与服务器的异步通信,福建电脑[J] 2006年第9期

上一篇:基于ASP.NET技术的企业办公自动化系统的设计

下一篇:基于TUXEDO的数据综合服务平台实现