Get方法在Servlet中工作,POST方法没有

时间:2015-01-07 09:35:08

标签: java servlets post

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

我使用在线教程创建了以下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 - 此方法不支持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 - 但这不起作用。

有人可以建议可能出现的问题吗?感谢

3 个答案:

答案 0 :(得分:0)

由于代码出错,您的代码包含一些错误。

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

答案 1 :(得分:0)

如果您使用的是tomcat,可以试试这个

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

</servlet-mapping>

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

答案 2 :(得分:0)

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

此外,你为什么不使用JSP?在处理servlet时使用MVC方法是很好的倾向。 即,模型 - 视图 - 控制器

将代码传递给JSP(View),然后从那里创建必要的代码。

祝你好运!