当前位置: 网学 > 网页素材 > AJAX代码 > 正文

用AJAX+J2EE实现一个网上会议室系统

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: Admin 发布时间: 09/05/30
hml");//返回会议室不存在的错误

  hatRoom.exit(getChatUser());

  form.addResult("msg","退出成功");

  ActionContext.getContext().getSession().removeAttribute("chatUser");

  return new Page("msg","/chat/xmlMsg.xml",Globals.PAGE_TEMPLATE_TYPE);

  }

  3、客户端AJAX部分核心代码

  EasyJF会议系统中,服务器发送给客户端的都是格式化的xml文档数据。下面是核心的AJAX函数及发送接收会议信息的客户端代码。

  function newXMLHttpRequest() {

  var xmlreq = false;

  if (window.XMLHttpRequest) {

  xmlreq = new XMLHttpRequest();

  } else if (window.ActiveXObject) {

  try {

  xmlreq = new ActiveXObject("Msxml2.XMLHTTP");

  } catch (e1) {

  try {

  xmlreq = new ActiveXObject("Microsoft.XMLHTTP");

  } catch (e2) {

  }

  }

  }

  return xmlreq;

  }

  //处理返回信息

  //xmlHttp返回值,

  //method:方法名 方法必须带一个参数如doRecive(xNode);

  function handleAjaxResult(req,method) {

  return function () {

  if (req.readyState == 4) {

  if (req.status == 200) {

  // 将载有响应信息的XML传递到处理函数

  var objXMLDoc=new ActiveXObject("Microsoft.XMLDOM");

  objXMLDoc.loadXML(req.responseText);

  eval("if(objXMLDoc.firstChild)"+method+"(objXMLDoc.firstChild.nextSibling);");

  } else {

  //alert("HTTP error: "+req.status);

  }

  }

  }

  }

  //执行客户端Ajax命令

  //url 数据post地址

  //postData 发送的数据包

  //handleMethod 处理返回的方法

  function executeAjaxCommand(url,postData,handleMethod)

  {

  var req = newXMLHttpRequest();

  req.onreadystatechange =handleAjaxResult(req,handleMethod);

  req.open("PO   ST", url, true);

  req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

  req.setRequestHeader("charset","utf-8");

  req.send(postData);

  }

  //用户发言

  unction doSend()

  {

  if(!check())return false;

  var msg=EditForm.content.value;

  var reciver=EditForm.reciver.value;

  var url="/chat.ejf?easyJWebCommand=send&cid="+roomId+"&lastReadId="+lastReadId;

  var postData="sender="+myName+"&reciver="+reciver+"&content="+msg;

  clearTimeout(reciveTime);

  executeAjaxCommand(url,postData,"recive");

  EditForm.content.value="";

  }

  //接收发言信息

  function doRecive()

  {

  var reciver=EditForm.reciver.value;

  var url="/chat.ejf?easyJWebCommand=recive&cid="+roomId+"&lastReadId="+lastReadId;

  executeAjaxCommand(url,"","recive");

  }

  //处理接收到的发言信息

  function recive(list)

  {

  var id="";

  for(var oNode=list.firstChild;oNode;oNode=oNode.nextSibling) // 依次分析每个节点

  {

  chatContent.innerHTML+=showMsg(oNode);

  id=oNode.getAttribute("cid");

  }

  if(id!="") lastReadId=id;

  chatContent.scrollTop=chatContent.scrollHeight;

  reciveTime=setTimeout("doRecive();",5000);

  }

  六、系统演示

  大家可以到EasyJF开源团队的官方网站看程序演示效果,地址是:

  http://www.easyjf.com/chatRoom.ejf?easyJWebCommand=show&ejid=2538093638804337

  结束语

  Ajax从技术上讲主要就是javascript、dhtml、css、xmldom、xmlhttp等一些我们很早就接触了的技术。而xmldom及xmlhttp也没有什么东西,写程序的时候把参考文档打开Copy就OK,dhtml及javascript涉及的东西就多了,不能只是看参考文档,需要把他真正消化,并能灵活动用,这就需要大家都练习了。笔者建议大家不要滥用Ajax。对于高手建议多研究一些业务及系统级算法设计等,对于新手嘛,把基本的技术(客户端的包括dhtml、css、javascript、xml等,J2EE服务器端的设计模式、UML建模、Servlet、JDBC或ORM系统、XML、EJB及一些框架、工具等)学好才是硬道理。

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号