簡體   English   中英

出現錯誤“此URL不支持消息HTTP方法GET”,但從未在任何地方使用GET

[英]Getting error “Message HTTP method GET is not supported by this URL” but never used GET anywhere

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. 

請給一些建議,使其工作。 ................................................... ................................................... ................................................... ................................

如果提交后要轉到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));

    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM