我正在尝试使用 eclipse ee 和 tomcat 通过 eclipse 启动服务器,将帖子从 HTML 转到 Java Servlet。 但我得到: HTTP 状态 405 - 此 URL 不支持 HTTP 方法 POST
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
</script>
</head>
<body>
<form method="POST" action="AddHost">
Host name : <input name="hostname" type="text"><br>
Genre : <input name="genre" type="text" ><br>
<input type="submit" value="add host">
</form>
</body>
</html>
这是 servlet:
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
@WebServlet("/AddHost")
public class Addhost extends HttpServlet {
public void doPost(HttpServletResponse res,HttpServletRequest req) throws IOException{
String hostname = req.getParameter("hostname");
String genre = req.getParameter("genre");
}
public void doGet(HttpServletResponse res,HttpServletRequest req) throws IOException{
doPost(res,req);
}
最佳答案
您使用了 doPost 方法的错误签名,而不是 overriding ,你是overloading
来自javadoc HttpServlet 包含:
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
所以你应该改变这个:
public void doPost(HttpServletResponse res,HttpServletRequest req)
对此:
@Override
public void doPost(HttpServletRequest req, HttpServletResponse res)
@Override 注解不是必需的,但强烈建议避免此类错误。
已编辑: 我按照建议添加了覆盖注释
关于java - eclipse ee servlet tomcat doPost http405,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7615084/