2

我正在尝试创建一个 Servlet,它接收基于 XML 的请求并在响应中发送 XML。首先,我是 Servlet 的新手。

我创建了下面的 Servlet,我认为我正在创建一个 Servlet,它在 中接收基于 XML 的请求,doGet method然后在 中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。

更新:-

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

4

1 回答 1

1

您可能希望在doPost () 方法中执行所有操作。对于给定的 HTTP 请求,将仅调用 doGet 或 doPost 之一,具体取决于调用者在其请求中是否指定了 GET 或 POST。

您创建的 XML 响应看起来基本没问题。无论如何,这是通用方法,将结果XML写入响应编写器。如果这是用于生产代码,而不仅仅是学习练习,那么您应该使用库来创建 XML,而不仅仅是从字符串手动构建它。请参阅“如何避免在生成 XML 时被称为 Bozo” http://hsivonen.iki.fi/produce-xml/

至于解析传入的请求:

BufferedReader reader = request.getReader()

使用它来读取传入 XML 的字符,并将它们传递给您的 XML 解析器。

于 2013-07-01T01:07:26.203 回答