JS & JAVA通过流的方式传递文件或字符
程序员文章站
2022-06-10 17:30:35
...
首先是前端
JS代码 类似如下
这里面使用了XMLHttpRequest
会通过异步方式向后台请求request,回调函数内,通过data获取的具体参数,可以查看W3CSchool里面介绍的,回调相应的状态判断等等
http://www.w3school.com.cn/xml/xml_http.asp
如果想传递文件,则在req.send中传递文件的指向,具体要参看HTML5中的FormData了
而后台Java接受代码如下
获取XML并通过流解析
JS代码 类似如下
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并通过流解析