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

标签 java xml servlets request

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

我创建了下面的 Servlet,我认为我正在创建一个 Servlet,它在 doGet 方法 中接收基于 XML 的请求,然后在 doPost 方法 中,我可以解析该 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?
}

谁能给我一个简单的例子?我只是想创建一个 Servlet 来接收基于 XML 的请求(我不确定这一点,我怎样才能制作一个可以接收基于 XML 的请求的 servlet),在我的示例中 xml 应该像上面那样。

然后解析上面的 XML 文件并使用该 XML 文件中的一些内容来制作一个新的示例 XML 文件,我将把它作为来自同一个 Servlet 的响应发回。

任何帮助将不胜感激,因为我是 Servlet 的新手。这是我第一次使用 Servlet。

更新:-

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

最佳答案

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

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

就解析传入请求而言:

BufferedReader reader = request.getReader()

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

关于java - Servlet 接收基于 XML 的请求,然后创建一个新的 XML 文件作为响应发回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17395738/

相关文章:

java - Maven 排除资源不起作用

java - Hibernate一对多自动插入id

python - 使用 python/Linux 二进制文件清理 DOCX 文档的 XML

xml - 使用 "every"子句时 Let 和 For 之间的不同 xquery 结果

Java geoip2 java.io.FileNotFoundException :

java - TestNG:Eclipse 被 JUnit 搞糊涂了

xml - 解析文件返回错误 "thread ' main' paniced"

java - http 请求的 servlet-container 和调度程序 servlet 的顺序是什么?

java - App Engine Java 11 无法在实时服务器上找到或加载主类

java - 在url中隐藏java包结构