首先是前端
JS代码 类似如下
class="javascript" name="code">
function callByXMLHttpRequest(url) {
if (window.XMLHttpRequest){
req = new XMLHttpRequest();
}
else if (window.ActiveXObject){
req = new ActiveXObject("Microsoft.XMLHTTP");
}
req.open("Post",url,true);
req.onreadystatechange = callback;
var xmlStr =
"<xml></xml>";
req.send(xmlStr);
}
function callback(data) {
if(data.currentTarget.readyState == "4") {
if(data.currentTarget.status == "200") {
resolveXML($.parseXML(data.currentTarget.responseText));
} else {
alert("网络不稳定,请稍后再试!");
}
}
}
这里面使用了XMLHttpRequest
会通过
异步方式向后台请求request,回调函数内,通过data获取的具体参数,可以查看W3CSchool里面介绍的,回调相应的状态判断等等
http://www.w3school.com.cn/xml/xml_http.asp
如果想传递文件,则在req.send中传递文件的指向,具体要参看
HTML5中的FormData了
而后台Java接受代码如下
public static Map<String, String> parseXml(HttpServletRequest request) throws Exception {
// 将解析结果存储在HashMap中
Map<String, String> map = new HashMap<String, String>();
// 从request中取得输入流
InputStream inputStream = request.getInputStream();
// 读取输入流
SAXReader reader = new SAXReader();
Document document = reader.read(inputStream);
// 得到xml根元素
Element root = document.getRootElement();
// 得到根元素的所有子节点
List<Element> elementList = root.elements();
// 遍历所有子节点
for (Element e : elementList) {
map.put(e.getName(), e.getText());
}
// 释放资源
inputStream.close();
inputStream = null;
return map;
}
获取XML并通过流解析