我正在学习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();
}
}
如果有人能告诉我我做错了什么,我们将不胜感激。
答案 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>
我希望我能帮上忙