我根据给定here的示例编写了一个servlet来处理POST和GET请求。我有以下内容:
具有以下形式的html:
form method="POST" action="servlet/RequestType"
并输入:
input type="submit" value="POST"
以下doGet
和doPost
方法:
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请求的结果。
有谁知道为什么会这样?
答案 0 :(得分:2)
我知道,这不是解决,但在调用doGet()之前尝试检查doPost()中的请求方法。 使用System.out.println() - 您将看到将要写的内容。如果没有任何内容会被写入,那将意味着您的请求始终是GET。
答案 1 :(得分:0)
您需要按表单的提交按钮发送POST请求。
那就是说,2001年的这个教程给了我很多痒。我建议去读一个更新/更好的。