Get 方法在 Servlet 中有效,POST 方法无效

Get method works in Servlet, POST method does not

我是一名编码新手,正在尝试建立一个可以使用 post 方法收集信息的 Web 表单。

我使用在线教程创建了以下 servlet

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// Extend HttpServlet class
public class HelloForm extends HttpServlet {


  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // Set response content type
      response.setContentType("text/html");

      PrintWriter out = response.getWriter();
      String title = "Using GET Method to Read Form Data";
      String docType =
      "<!doctype html public \"-//w3c//dtd html 4.0 " +
      "transitional//en\">\n";
      out.println(docType +
                "<html>\n" +
                "<head><title>" + title + "</title></head>\n" +
                "<body bgcolor=\"#f0f0f0\">\n" +
                "<h1 align=\"center\">" + title + "</h1>\n" +
                "<ul>\n" +
                "  <li><b>First Name</b>: "
                + request.getParameter("first_name") + "\n" +
                "  <li><b>Last Name</b>: "
                + request.getParameter("last_name") + "\n" +
                "</ul>\n" +
                "</body></html>");
  }


//Method to handle POST method request.
 public void doPost(HttpServletRequest request,
                    HttpServletResponse response)
     throws ServletException, IOException {
    doGet(request, response);
 }

}

我的 html 表格如下。当我将方法更改为 GET - 表单有效。但是,当我将方法更改为 POST 时,我得到 HTTP 状态 405 - 此 URL 不支持 HTTP 方法 POST。

<html>
<body>
<form action="HelloForm" method="POST">
First Name: <input type="text" name="first_name">
<br />
Last Name: <input type="text" name="last_name" />
<input type="submit" value="Submit" />
</form>
</body>
</html>

我按照其他一些线程中的建议在 post 方法上尝试了 @Override - 但那没有用。

有人可以提出可能出了什么问题吗?谢谢

您的代码包含一些错误,因为该代码给出了错误。

public void doPost(HttpServletRequest 请求, HttpServletResponse 响应) 抛出 ServletException,IOException { doGet(请求,响应); //方法调用不正确 }

如果您正在使用 tomcat,您可以试试这个

<servlet-mapping>
     ...
    <http-method>POST</http-method>

</servlet-mapping>

除了您的 web.xml servlet 配置中的 servlet-name 和 url-mapping。

您需要在POST函数中编写代码。

而且,你为什么不用JSP?在处理 servlet 时使用 MVC 方法是一个很好的习惯。 即,模型 - 视图 - 控制器

将代码传递给 JSP(视图)并从那里生成必要的代码。

祝你好运!