Document xmlDocument = builder.parse(request.getInputStream());
这里的请求是作为POST发送的; 但是我无法在servlet中获取请求进程。 抛出以下异常
org.xml.sax.SAXParseException: Content is not allowed in prolog.
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:98)
任何人都可以给我答案。
提前致谢。
答案 0 :(得分:0)
Document xmlDocument = builder.parse(request.getInputStream());
此Java代码用于解析XML。
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
this.xmlHttp.open("POST",url, this.async);
this.xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
this.xmlHttp.send("sessionid=324trt");
此浏览器JavaScript代码会发送application/x-www-form-urlencoded
个数据。有效负载sessionid=324trt
不是XML。
读取参数的正确方法是via the parameter map:
String sessionid = request.getParameter("sessionid");
答案 1 :(得分:0)
执行上面的@McDowell建议并将您的xml发布为POST参数。然后读取servlet中的参数并执行此操作 -
String postedXml = request.getParameter("postedXml");
StringReader reader = new StringReader( postedXml );
InputSource inputSource = new InputSource( reader );
Document doc = builder.parse( inputSource );
reader.close();