[英]getting error HTTP Status 405 - HTTP method GET is not supported by this URL but not used `get` ever?
[英]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.