Servlet处理POST请求为GET

时间:2010-09-02 02:42:18

标签: java http servlets

我根据给定here的示例编写了一个servlet来处理POST和GET请求。我有以下内容:

具有以下形式的html:

form method="POST" action="servlet/RequestType"

并输入:

input type="submit" value="POST"

以下doGetdoPost方法:

public void doGet(HttpServletRequest req, HttpServletResponse rsp)   throws ServletException, IOException {
    rsp.setContentType("text/html");
    PrintWriter out = rsp.getWriter();

    String requestType = req.getMethod();

    out.println("<html>");
    out.println("<head><title> Request Type: " + requestType
       + " </title></head>");
    out.println("<body>");
    out.println("<p>This page is the result of a " + requestType
    + " request.</p>");
    out.println("</body></html>");
}

public void doPost(HttpServletRequest req, HttpServletResponse rsp) throws ServletException, IOException {
    doGet(req, rsp);
}

输出应为:

  

此页面是POST请求的结果。

但我得到了:

  

此页面是GET请求的结果。

有谁知道为什么会这样?

2 个答案:

答案 0 :(得分:2)

我知道,这不是解决,但在调用doGet()之前尝试检查doPost()中的请求方法。 使用System.out.println() - 您将看到将要写的内容。如果没有任何内容会被写入,那将意味着您的请求始终是GET。

答案 1 :(得分:0)

您需要按表单的提交按钮发送POST请求。

那就是说,2001年的这个教程给了我很多痒。我建议去读一个更新/更好的。