java 发送post请求 参数为xml_请求参数作为xml发送_jquery

这篇博客介绍了如何在JavaScript中构造XML字符串并使用XMLHttpRequest对象发送POST请求到服务器,服务器端使用Java Servlet接收并解析XML参数,然后返回响应结果。示例包括XML的创建、发送请求、处理服务器响应以及服务器端处理XML的代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

业务逻辑:下拉框选择喜欢的宠物类型,可多选,选择参数构造成xml参数发送。服务器发回响应结果。

页面:postingXML.html

发送XML请求

//xmlHttpRequest对象

var xmlHttp;

//创建xmlHttpRequest对象

function createXMLHttpRequest(){

if (window.ActiveXObject){

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

}

else if(window.XMLHttpRequest){

xmlHttp = new XMLHttpRequest();

}

}

//创建xml字串

function createXML(){

var xml = ""

var options = document.getElementById("petTypes").childNodes;

var option = null;

for (var i = 0; i < options.length; i++){

option = options[i];

if (option.selected){

xml = xml + "" + option.value + "/type>";

}

}

xml = xml + "/pets>";

return xml;

}

//发送宠物类型请求

function sendPetTypes(){

createXMLHttpRequest();

var xml = createXML();

//处理方法

var url = "postingxmlexample?timeStamp=" + new Date().getTime();

xmlHttp.open("POST",url,true);

xmlHttp.onreadystatechange = handleStateChange;

//设置请求头格式

xmlHttp.setRequestHeader("Conteyt-Type","application/x-www-form-urlencoded;");

xmlHttp.send(xml);

}

//回调方法

function handleStateChange(){

if (xmlHttp.readyState == 4){

if (xmlHttp.status == 200){

//解析返回结果

parseResults();

}

}

}

//解析返回结果

function parseResults(){

var responseDiv = document.getElementById("serverResponse");

if (responseDiv.hasChildNodes()){

responseDiv.removeChild(responseDiv.childNodes[0]);

}

//返回文本构造一个文本节点

var responseText = document.createTextNode(xmlHttp.responseText);

responseDiv.appendChild(responseText);

}

请选择家中宠物的类型:

服务器端响应:

服务器端

PostingXMLExample.java

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

import javax.xml.parsers.*;

import org.w3c.dom.*;

public class PostingXMLExample

extends HttpServlet {

private static final String CONTENT_TYPE = "text/html; charset=GBK";

//Initialize global variables

public void init() throws ServletException {

}

//处理Post请求

public void doPost(HttpServletRequest request, HttpServletResponse response) throws

ServletException, IOException {

//得到请求的xml字串

String xml = readXMLFromRequestBody(request);

Document xmlDoc = null;

try {

xmlDoc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes()));

}

catch (Exception ex) {

System.out.println("解析XML异常...");

}

//得到类型节点列表

NodeList selectedPetTypes = xmlDoc.getElementsByTagName("type");

String type = null;

String responseText = "选择的宠物是:";

for (int i = 0; i < selectedPetTypes.getLength(); i++){

type = selectedPetTypes.item(i).getFirstChild().getNodeValue();

responseText = responseText + " " + type;

}

response.setContentType(CONTENT_TYPE);

response.getWriter().print(responseText);

}

/**

* readXMLFromRequestBody

*

* @param request HttpServletRequest

* @return String

*/

private String readXMLFromRequestBody(HttpServletRequest request) {

StringBuffer xml = new StringBuffer();

String line = null;

try {

BufferedReader reader = request.getReader();

while((line = reader.readLine()) != null){

xml.append(line);

}

}

catch (Exception ex) {

System.out.println("读取xml错误:" + ex.getMessage());

}

return xml.toString();

}

//Clean up resources

public void destroy() {

}

}

欢迎大家阅读《请求参数作为xml发送_jquery》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码

原创文章,转载请注明: 转载自搞代码

e7ce419cf2d6ad34d01da2ceb8829eed.png

微信 赏一包辣条吧~

023a57327877fb4402bcc76911ec18ea.png

支付宝 赏一听可乐吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值