我是一名编码新手,我正在尝试设置一个可以使用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 - 但这不起作用。
有人可以建议可能出现的问题吗?感谢
答案 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),然后从那里创建必要的代码。
祝你好运!