Java eclipse ee servlet tomcat doPost http405

Java eclipse ee servlet tomcat doPost http405,java,eclipse,servlets,tomcat7,http-status-code-405,Java,Eclipse,Servlets,Tomcat7,Http Status Code 405,我正在尝试使用EclipseEE和tomcat通过eclipse启动服务器,将HTML转换为Javaservlet。 但我得到了: HTTP状态405-此URL不支持HTTP方法POST <!DOCTYPE html> <html> <head> <script type="text/javascript"> </script> </head> <body> <form method="POST" act

我正在尝试使用EclipseEE和tomcat通过eclipse启动服务器,将HTML转换为Javaservlet。 但我得到了: 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>

您使用了方法doPost的错误签名,而不是

从HttpServlet包含:

protected void doPost(HttpServletRequest req, HttpServletResponse resp)
所以你应该改变这一点:

public void doPost(HttpServletResponse res,HttpServletRequest req)
为此:

@Override
public void doPost(HttpServletRequest req, HttpServletResponse res)
@重写注释不是必需的,但强烈建议避免此类错误

编辑:
我像mth建议的那样添加了覆盖注释

谢谢,我没有意识到参数的顺序应该是那样的。这有什么原因吗?当它允许我的时候,我会接受的。是的,订单很重要。在Java中,我们可以有几个名称相同但参数顺序、数量和类型不同的方法。检查我的更新和重载链接这就是为什么添加@Override很有帮助-当您实际上没有重写,而是错误地重载时,编译器将捕获它。当然,使用您选择的IDE的“覆盖方法”功能也有很大帮助(因为IDE将为您创建正确的框架方法)
@Override
public void doPost(HttpServletRequest req, HttpServletResponse res)