gpt4 book ai didi

java - 此 URL 不支持 HTTP 方法 GET,尽管它执行 doGet

转载 作者:行者123 更新时间:2023-12-02 12:57:18 24 4
gpt4 key购买 nike

public class RoarHistoryUpdate extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
super.doGet(request, response);
System.out.println("do Get");
response.setContentType("text/html");
response.getOutputStream().print("Success");
}
}

这是我的 Servlet。它在 web.xml 中注册如下:

  <servlet>
<display-name>RoarHistoryUpdateServlet</display-name>
<servlet-name>RoarHistoryUpdateServlet</servlet-name>
<servlet-class>de.ulm.uni.vs.avid.roary.servlets.RoarHistoryUpdate</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RoarHistoryUpdateServlet</servlet-name>
<url-pattern>/Roary/UpdateServlet</url-pattern>
</servlet-mapping>

当我访问 URL http://localhost:8080/Roary-JSP/Roary/UpdateServlet 时它说HTTP Status 405 - HTTP method GET is not supported by this URL

有趣的是我得到了 do Get登录到我的控制台。所以它实际上找到了 doGet -方法。

我使用的是 GlassFish Server 开源版 3.1.2.2

最佳答案

因为当您在 Servlet 的 doGet() 方法中执行 super.doGet(request, response); 时,您实际上调用了 doget() HttpServlet 类的 code>。该方法的 Tomcat 7 实现如下(Glassfish 可能存在类似的实现):

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
String protocol = req.getProtocol();
String msg = lStrings.getString("http.method_get_not_supported");
if (protocol.endsWith("1.1")) {
resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg);
} else {
resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);
}
}

关于java - 此 URL 不支持 HTTP 方法 GET,尽管它执行 doGet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16207536/

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