论坛首页 Java企业应用论坛

Ajax方式发送XML及接收xml响应实例

浏览 3904 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (9)
作者 正文
   发表时间:2011-06-23   最后修改:2011-06-26
本文介绍通过bbossgroups 的mvc框架实现Ajax方式发送XML数据及接收xml响应实例,切入正题。


本文分两部分:
1.Ajax方式发送XML数据及xml响应的接收demo的下载和部署
2.源码分析

第一部分 Ajax方式发送XML数据及xml响应的接收demo的下载和部署
1.从以下地址下载demo的eclipse工程
http://dl.iteye.com/topics/download/600a3e0c-acf9-3288-a54b-77acf15d9b70

2.解压工程到指定的目录下,例如:d:/workspace/xmlrequest

3.将工程导入到eclipse,编译成功即可进入下一环节。

4.部署demo到tomcat 6(jdk 1.5以上),编写xmlrequest.xml文件,内容如下:
<?xml version='1.0' encoding='gb2312'?>

<Context docBase="D:\workspace\xmlrequest\WebRoot" path="/xmlrequest" debug="0" reloadable="false" privileged="true">
</Context>

将该文件放入tomcat的conf\Catalina\localhost目录下,即可

5.启动tomcat,在浏览器中输入以下地址,查看效果:
http://localhost:8080/xmlrequest/xml/index.page
   发表时间:2011-06-23  
第二部分 源码分析
源代码分jsp页面,控制器java类,控制器mvc配置文件三块。用户使用jsp中的sendxml文本域发送需要的xml文本,然后服务器xml处理控制器接收到xml文本后直接将xml回显到jsp页面的xmlresult文本域中。
1.jsp代码-xmlrequest.jsp
<%@ page contentType="text/html; charset=UTF-8" language="java" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<title>发送xml数据demo</title>
<script type="text/javascript"> 
	function sendxml()
	{		
		var xmlhttp =null;
		if(window.ActiveXObject)
		{
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");			
		}
		else if(window.XMLHttpRequest)
		{
			xmlhttp = new XMLHttpRequest();			
		}
		else
		{			
			return;
		}
		var xml = $("#sendxml").val();
		xmlhttp.open("POST","echo.page");
		xmlhttp.setRequestHeader("Content-Length",xml.length);
		xmlhttp.setRequestHeader("CONTENT-TYPE","text/xml;charset=UTF-8");
		xmlhttp.onreadystatechange=function(){
			if(xmlhttp.readyState == 4)
			{	
				$("#xmlresult").val(xmlhttp.responseText);
			}
		}
		xmlhttp.send(xml);
	}
	</script>
		<meta http-equiv="pragma" content="no-cache">
		<meta http-equiv="cache-control" content="no-cache">
		<meta http-equiv="expires" content="0">
		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
		<meta http-equiv="description" content="This is my page">
		<script type="text/javascript" src="<%=request.getContextPath() %>/include/jquery-1.4.4.min.js"></script>		
	</head>	
		<span id="checkboxtreecontainer">
		<table><tr><td>
			   请输入要发送的xml内容:<input type="button" name="send" value="点击发送" onclick="sendxml()">			  
			  </td></tr>
			  <tr><td>			   	
			  <textarea rows="5" cols="100" id="sendxml"><web><version>国产j2ee框架 bbossgroups 3.2</version></web></textarea>
			  </td></tr>
			  <tr><td>
			  来自服务器的xml响应: 			  
			  </td></tr>
			  <tr><td>			   
			  <textarea rows="5" cols="100" id="xmlresult"></textarea>
			  </td></tr>
			  </table>
		</span>			
	</body>


用户可以在sendxml文本域发送需要的xml文本,然后服务器接收到文本后直接显示在xmlresult文本域中。

2.控制类XMLRequestController-接收到xml文本后直接将xml回显到jsp页面
源码如下,非常简单,包含进入输入界面和接收xml文本并回显给客服端两个控制器方法:
package org.frameworkset.web.xml;

import org.frameworkset.util.annotations.RequestBody;
import org.frameworkset.util.annotations.ResponseBody;


/**
 * <p>XMLRequestController.java</p>
 * <p> Description: </p>
 * <p> bboss workgroup </p>
 * <p> Copyright (c) 2009 </p>
 * 
 * @Date 2011-6-22
 * @author biaoping.yin
 * @version 1.0
 */
public class XMLRequestController
{
	public @ResponseBody(charset="UTF-8") String echo(@RequestBody String xml)
	{
		System.out.println(xml);
		return xml;
	}
	public String index()
	{
		return "path:index";
	}
}

0 请登录后投票
   发表时间:2011-06-23  
3.MVC控制器配置文件-bboss-xml.xml
该文件的内容也非常简单,包含控制器的url映射配置,跳转到xml输入页面的路径配置以及控制器的实现类配置。
<?xml version="1.0" encoding='gb2312'?>
<properties>
    <property name = "/xml/*.page" 
    path:index="/xml/xmlrequest.jsp"
    class="org.frameworkset.web.xml.XMLRequestController" />
</properties>
0 请登录后投票
   发表时间:2011-06-23  
终于沙发了,貌似功能非常强大!
    
0 请登录后投票
   发表时间:2011-06-25  
呵呵,这个功能很实用!
0 请登录后投票
   发表时间:2011-06-29  
ainidehsj 写道
呵呵,这个功能很实用!

实用是bbossgroups项目的始终追求的最高目标。
0 请登录后投票
   发表时间:2011-07-09  
bbossgroups项目新域名开通:
http://www.bbossgroups.com
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics