【问题标题】:put/post request without content in JAVA servlet在 JAVA servlet 中放置/发布没有内容的请求
【发布时间】:2014-12-11 09:54:38
【问题描述】:

我想向另一个 JAVA servlet 发送PUT/POST 请求,通知某事已完成。我不想发送任何内容。说网址是;

putURL = "http://"+recorderIp+":"+recorderPort +"/vodingest/rec/"+recId+"/completed"

我没有要发送的任何内容(文件内容)。servlet 一旦在他的PUT/POST 方法中看到这个请求,他就会知道某事已经完成并做了必要的事情。

如何在 JAVA servlet 中执行此操作。请帮帮我。

【问题讨论】:

    标签: java servlets


    【解决方案1】:

    我们有很多方法可以将请求 POST 到另一个 servlet。

    1) 发送重定向

    request.sendRedirect("myServletName.java")
    

    2) 链接

    out.println("<a href=\"http://localhost:8080/HelloWorld/myServlet\"> Hello World Servlet </a>");
    

    3) 请求调度员

     request.getRequestDispatcher("/myServletName").forward(request, response);
    

    在请求对象中,您还可以将值传递给另一个 servlet。

    request.setParams("recId" , "completed")
    

    我想第三个选项更适合你。希望能解决您的问题。

    【讨论】:

    • 你能给我代码序列吗?另外,我在哪里可以解析目标 servlet 中的消息?
    【解决方案2】:

    首先,默认情况下,Web 服务器(包括 Tomcat)上未启用 PUT,因此在尝试此操作之前,请确保已启用 PUT 或坚持使用 POST。如上所述,如果您的两个 servlet(假设有 2 个 servlet)在同一个容器下,则可以进行分派。否则,如果您是从独立客户端执行此操作,则方法会有所不同。以下应该适用于所有环境:

    使用 HttpURLConnection (https://docs.oracle.com/javase/7/docs/api/java/net/HttpURLConnection.html) 使用 setRequestMethod 发布 如果您需要从流中写入和读取,请使用 doInput/doOutput(在您的情况下,我认为两者都没有必要)。

    这是一种相对直接的方法,并且会起作用。如果您需要更多的客户端灵活性,您可以使用 Apache Commons HTTP Client。

    请注意,如果您没有什么可写的,也没有什么可真正阅读的,您为什么要考虑使用 PUT?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 2018-03-04
      • 2016-01-19
      • 1970-01-01
      • 1970-01-01
      • 2012-06-25
      相关资源
      最近更新 更多