Servlet 错误:HTTP 状态 405 - 此 URL 不支持 HTTP 方法 GET [重复]

Posted

技术标签:

【中文标题】Servlet 错误:HTTP 状态 405 - 此 URL 不支持 HTTP 方法 GET [重复]【英文标题】:Servlet error : HTTP Status 405 - HTTP method GET is not supported by this URL [duplicate] 【发布时间】:2020-07-16 00:44:58 【问题描述】:

当我尝试在 Eclipse 中运行代码时,它不会传递参数。 请检查以下图片网址。

但是当我单独运行 html 代码时,它会传递值。

我不知道为什么会这样。 我的 Servlet 代码是

package com.example;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class AddServelet extends HttpServlet


    public void services(HttpServletRequest req, HttpServletResponse resp) 

        int i = Integer.parseInt(req.getParameter("num1"));
        int j = Integer.parseInt(req.getParameter("num2"));

        int k = i+j;    
        System.out.println(k);  
    


我的 web.xml 代码是

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">

<servlet>
<servlet-name>abc</servlet-name>
<servlet-class>com.example.AddServelet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>abc</servlet-name>
<url-pattern>/add</url-pattern>
</servlet-mapping>

</web-app>

我的html代码

<html>
<body>
<form action="add">
Number 1: <input type="number" name="num1"><br>
Number 2: <input type="number" name="num2"><br>
<input type="submit">
</form>
</body>
</html>

谁能帮我解决这个问题。 提前谢谢你。

【问题讨论】:

该方法被称为service,而不是services。但是,是的,如果您使用的是HttpServlet,您不妨重写doXYZ 方法之一。 【参考方案1】:

如果要处理 GET 请求,请覆盖 HttpServlet protected void doGet(HttpServletRequest req, HttpServletResponse resp) 方法

【讨论】:

【参考方案2】:

您需要重写 doPost 方法,因为您正在提交表单并且它是一个发布请求。

公共类 AddServelet 扩展 HttpServlet private static final long serialVersionUID = 1L;

/**
 * @see HttpServlet#HttpServlet()
 */
public AddServelet() 
    super();
    // TODO Auto-generated constructor stub


/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    // TODO Auto-generated method stub



/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 */
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    // TODO Auto-generated method stub
    int i = Integer.parseInt(req.getParameter("num1"));
    int j = Integer.parseInt(req.getParameter("num2"));

    int k = i+j;    
    System.out.println(k); 

【讨论】:

以上是关于Servlet 错误:HTTP 状态 405 - 此 URL 不支持 HTTP 方法 GET [重复]的主要内容,如果未能解决你的问题,请参考以下文章

简单 Servlet HTTP 状态 405 - 此 URL 不支持 HTTP 方法 GET [重复]

org.springframework.web.servlet.PageNotFound - 请求方法'POST'不支持http状态405

HTTP Status 405 错误

HTTP 状态 405 - 此 URL java servlet 不支持 HTTP 方法 POST [重复]

doPost 超级导致 - HTTP 状态 405

servlet 500,405错误