获取错误“此URL不支持消息HTTP方法GET”,但从未在任何地方使用过GET

问题描述 投票:1回答:1

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>adding</servlet-name>
	<servlet-class>com.nokia.web.servlet.practice.AddServlet</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>adding</servlet-name>
	<url-pattern>/add</url-pattern>
</servlet-mapping>
</web-app>

index.html文件:

<!DOCTYPE html>
<html>
<body>
	Hello World
	<form action="add" method="post">
		Enter 1st number : <input type="text" name="num1">
		Enter 2nd number : <input type="text" name="num2">
		<input type="submit">
	</form>
</body>
</html>

AddServlet.java文件:

package com.nokia.web.servlet.practice;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.*;

public class AddServlet extends HttpServlet{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException {
		int i = Integer.parseInt(req.getParameter("num1"));
		int j = Integer.parseInt(req.getParameter("num2"));

		
		PrintWriter out = res.getWriter();
		out.println(" post sum = "+ (i+j));
		
	}

	

}

而错误是

HTTP Status 405 – Method Not Allowed
Type Status Report

Message HTTP method GET is not supported by this URL

Description The method received in the request-line is known by the origin server but not supported by the target resource.

请提出一些如何使其发挥作用的建议。 .................................................. .................................................. .................................................. ................................

java servlets
1个回答
0
投票

如果要提交URL localhost:8085 / WebProjectYutb / add?num1 = 11&num2 = 11提交后意味着它正在使用GET方法,因为POST方法不会在URL上显示参数。由于您没有实现GET方法,因此您正在接收HTTP状态405 - 方法不允许。

您可以通过覆盖doGet方法并将请求转发到doPost来解决问题,如下所示:

package com.nokia.web.servlet.practice;

import java.io.IOException;
import java.io.PrintWriter;

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

public class AddServlet extends HttpServlet {

    private static final long serialVersionUID = 7041461467204399253L;

    public AddServlet() {
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException {
        int i = Integer.parseInt(req.getParameter("num1"));
        int j = Integer.parseInt(req.getParameter("num2"));

        PrintWriter out = res.getWriter();
        out.println(" post sum = " + (i + j));

    }
}
© www.soinside.com 2019 - 2024. All rights reserved.