gpt4 book ai didi

java - eclipse ee servlet tomcat doPost http405

转载 作者:行者123 更新时间:2023-11-30 07:30:50 29 4
gpt4 key购买 nike

我正在尝试使用通过 Eclipse 启动服务器的 eclipse ee 和 tomcat 从 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 注释不是必需的,但强烈建议避免此类错误。

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

关于java - eclipse ee servlet tomcat doPost http405,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7615084/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com