我正在尝试创建一个接收基于XML的请求的Servlet,并在响应中发送XML。我是Servlet的新手。
我创建了下面的Servlet,其中我认为我正在创建一个Servlet,它在doGet method
中接收基于XML的请求,然后在doPost method
中,我可以解析该XML文件然后制作一个新的XML文件,用于发回响应。但我相信我的理解是错误的。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/xml");
PrintWriter writer = response.getWriter();
writer.println("<?xml version=\"1.0\"?>");
writer.println("<request uuid = \"hello\">");
writer.println("<app hash = \"abc\"/>");
writer.println("<app hash = \"def\"/>");
writer.println("</request>");
writer.flush();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(request);
//parse the xml file if my understanding is right?
}
有人能为我提供一个简单的例子吗?我只是想创建一个接收基于XML的请求的Servlet(我不确定这个,我怎样才能创建一个可以接收基于XML的请求的servlet),xml应该像我上面的例子一样。
然后解析上面的XML文件并使用该XML文件中的一些内容来创建一个新的示例XML文件,我将作为来自同一Servlet的响应发送回来。
任何帮助都会受到赞赏,因为我对Servlet稍微有点新意。这是我第一次使用Servlet。
更新: -
我还没有得到正确答案。任何简单的例子都会让我理解得更好。感谢
答案 0 :(得分:1)
您可能希望在 doPost ()方法中执行所有操作。对于给定的HTTP请求,将调用doGet或doPost中的一个,具体取决于调用者是否在其请求中指定了GET或POST。
您创建XML响应看起来基本上没问题。无论如何,这是一般方法,将结果 XML写入响应编写器。如果这是用于生产代码,而不仅仅是学习练习,那么您应该使用库来创建XML,而不仅仅是从字符串手动构建它。请参阅“如何避免在生成XML时被称为Bozo”http://hsivonen.iki.fi/producing-xml/
就解析传入的请求而言:
BufferedReader reader = request.getReader()
使用它来读取传入XML的字符,并将它们传递给XML解析器。