servlet对form提交的数据进行XML转换后发送
今天遇到一个项目,要求对form表单提交的数据进行以xml格式发送出去;
直接写XMLUtil工具类如下:
package com.yfit.controller; import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; import java.util.Iterator; import java.util.Map; import java.util.Set; public class XMLUtil { /* * @todo servlet发送xml格式的数据 * @author tapt */ public static void XMLResponse(HttpServletResponse response, String message) { PrintWriter pw = null; try { response.setContentType("text/xml;charset=utf-8"); response.setCharacterEncoding("UTF-8"); response.setHeader("Cache-Control", "no-cache"); pw = response.getWriter(); pw.print(message); pw.flush(); } catch (Exception e) { e.printStackTrace(); } finally { if (pw != null) pw.close(); } } /* * @todo 传送一个map,返回一个XML字符串 * @author tapt */ public static String getXMLString(Mapmap){ StringBuffer sb=new StringBuffer("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); sb.append(" "); Set set=map.keySet(); String valueString=""; String keyString=""; Iterator it=set.iterator(); while(it.hasNext()){ keyString=(String) it.next(); valueString=map.get(keyString); System.out.println(keyString); System.out.println(valueString); sb.append(" - "+keyString+"\" value=\""+valueString+"\"/>"); } sb.append(""); return sb.toString(); } }
把表单所有的数据提取后,将表单name和value以键值对的形式存放到map集合里面,调用getXMLString转换成字符串,再调用ajaxResponse发送即可。