无法实现doPost()方法

时间:2013-03-01 02:57:07

标签: java servlets

我正在学习Java Servlets。尝试实现doPost()方法,但是我收到“HTTP状态405 - 此URL不支持HTTP方法POST”的错误。

代码

<html>
<body>
<center>
<form name="Form1" action="http://localhost:8080/examples/servlet/ColorGetServlet" method="post">
<B>Color:</B>
<select name="color" size="1">
<option value="Red">Red</option>
<option value="Green">Green</option>
<option value="Blue">Blue</option>
</select>

<br><br>
<input type=submit value="Submit">
</form>
</body>
</html>

的Servlet

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

public class ColorGetServlet extends HttpServlet{

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{

    String color = request.getParameter("color");
    response.setContentType("text/html");
    PrintWriter pw = response.getWriter();

    pw.println("<B>The Selected Color is: ");
    pw.println(color);
    pw.close();
    } 
}

如果有人能告诉我我做错了什么,我们将不胜感激。

2 个答案:

答案 0 :(得分:0)

这是一种解决方法,而不是调用servlet的正确过程。将以下行添加到jsp页面的顶部。

<%@page import="your-package-name.examples.servlet.ColorGetServlet"%>

例如,

<%@page import="com.yourcompany.examples.servlet.ColorGetServlet"%>

这不是一个好方法,因为你直接绕过web.xml,而是将servlet导入你的jsp页面。 并在您的页面中更改<input type=submit value="Submit">

<input type="submit" value="Submit">

尝试上述内容并请评论是否应该失败。

答案 1 :(得分:0)

您好,问题出在行动上,请更改为

<html>
<body>

<form name="Form1" action="<%=request.getContextPath() %>/ColorGetServlet" method="post">
<B>Color:</B>
<select name="color" size="1">
<option value="Red">Red</option>
<option value="Green">Green</option>
<option value="Blue">Blue</option>
</select>

<br><br>
<input type=submit value="Submit">
</form>

</body>
</html>

和web.xml应该如下所示:

 <servlet>
    <description></description>
    <display-name>ColorGetServlet</display-name>
    <servlet-name>ColorGetServlet</servlet-name>
    <servlet-class>ColorGetServlet.ColorGetServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ColorGetServlet</servlet-name>
    <url-pattern>/ColorGetServlet</url-pattern>
  </servlet-mapping>

我希望我能帮上忙