接收基于XML的请求的Servlet,然后创建一个新的XML文件作为响应发回

时间:2013-06-30 23:20:54

标签: java xml servlets request

我正在尝试创建一个接收基于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。

更新: -

我还没有得到正确答案。任何简单的例子都会让我理解得更好。感谢

1 个答案:

答案 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解析器。