servlet获取并解析post请求发送过来的xml字符串

这篇博客详细介绍了如何在Servlet中接收并通过DOM4J库解析POST请求中发送的XML字符串。客户端通过POST方式传递XML数据,服务器端利用DOM4J进行解析,从而提取所需信息。
摘要由CSDN通过智能技术生成

客户端代码:

@Action(value = "/sendxmlTest", results = { 
			@Result(name = SUCCESS, location = "condo/accountOpenApplly.jsp"),
			@Result(name = INPUT, location = "base/error.jsp") })
	public String sendxmlTest(){
		String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
						"<request>\n" + 
						"  <head>\n" + 
						"    <transType>0101</transType>\n" + 
						"    <terminalVer>1.0.0</terminalVer>\n" + 
						"    <dateTime>20170407103000</dateTime>\n" + 
						"  </head>\n" + 
						"  <body>\n" + 
						"    <contactNo>Test00001</contactNo>\n" + 
						"  </body>\n" + 
						"<mac>902de37505fce863f4489a87c7e3fa6c</mac>"+
						"</request>";

		String url = "http://127.0.0.1:8080/zxemm/contactServlet.htm";
		try {
			String resultXml = SubmitUtils.buildRequest(url, xml);
		} catch (Exception e) {
			e.printStackTrace();
		}
	return SUCCESS;
		
	}

服务端代码:

package com.jiuyi.net.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

import com.jiuyi.jyplat.entity.condo.ContactInfo;
import com.jiuyi.jyplat.service.SpringContextUtil;
import com.jiuyi.jyplat.service.condo.IContactInfoService;
import com.jiuyi.jyplat.util.ConfigManager;
import com.jiuyi.jyplat.util.DateUtils;
import com.jiuyi.jyplat.util.Utils;
import com.jiuyi.net.message.httpClient.XMLUtil;
import com.jiuyi.net.message.pos.contact.QurContactRsp;
import com.jiuyi.net.message.pos.contact.QurContactRspMsg;
import com.jiuyi.net.message.pos.contact.RequestHead;
import com.jiuyi.net.utils.PosMacUtils;

/**
 * 
 * <p><b>Title: </b>ContactServlet.java
 * <p><b>Description: </b>合同信息查询servlet
 * @author 
 * @version V1.0
 * <p>
 * 2017-4-6  创建类  <br>
 *
 */
public class ContactServlet extends HttpServlet{

	private static final long serialVersionUID = 1L;
	
	Logger log = Logger.getLogger(ContactServlet.class);
	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doPost(request, response);
	}
	
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		log.info("收到查询合同信息的请求...");
		QurContactRspMsg rspMsg = new QurContactRspMsg();
		QurContactRsp rsp = new QurContactRsp();
		RequestHead head = new RequestHead();
		head.setTransType("0101");
		head.setTerminalVer("V1.0");
		head.setDateTime(DateUtils.getToday(DateUtils.TIME_STR_FORMAT));
		PrintWriter out = response.getWriter();
		ServletInputStream sis = null;  
		String xmlData="";
		Map<String,String> macMap = new HashMap<String,String>();
		String posKey = (String) ConfigManager.getInstance().getConfigItem("pos_key", ""); //获取配置文件中的加密key
		try {
			//编码格式改成UTF-8
			response.setCharacterEncoding("UTF-8");
			request.setCharacterEncoding("UTF-8");
			response.setContentType("textml; charset=UTF-8");
			response.setHeader("Content-type", "text/html;charset=UTF-8");
			
			sis=request.getInputStream();
			// 取HTTP请求流长度  
      
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值