HTTP 状态 405 - 此 URL 不支持 HTTP 方法 GET [重复]
Posted
技术标签:
【中文标题】HTTP 状态 405 - 此 URL 不支持 HTTP 方法 GET [重复]【英文标题】:HTTP Status 405 - HTTP method GET is not supported by this URL [duplicate] 【发布时间】:2016-02-13 14:42:39 【问题描述】:HTTP 状态 405 - 此 URL 不支持 HTTP 方法 GET
我无法让页面正常工作,我有我的表单方法要发布,我的 servlet 有 doPost,但是它一直显示我不支持 Post 方法。我只是想做一个简单的网站。
jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
Hello
<%=request.getAttribute("name") %>
</body>
</html>
Servlet
package esempio2;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.*;
import java.io.*;
import javax.servlet.*;
public class Nome extends HttpServlet
public void doPost(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException
String name=request.getParameter("username");
request.setAttribute("nome", name);
RequestDispatcher view = request.getRequestDispatcher("index.jsp");
view.forward(request, response);
WEB.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<servlet>
<servlet-name>nome</servlet-name>
<servlet-class>esempio2.Nome</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>nome</servlet-name>
<url-pattern>/tester.do</url-pattern>
</servlet-mapping>
</web-app>
【问题讨论】:
设置属性“nome”时输入错误 您的表格在哪里?从异常“此 URL 不支持 HTTP 方法 GET”可以清楚地看出,表单正在请求 GET 方法,而您尚未在 servlet 中定义任何 GET 方法。默认情况下,表单的方法是 GET。您必须将其明确设置为 POST。 HTML Form Method 【参考方案1】:尝试添加 doGet() 方法!
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
//your code here
尝试添加类似这样的内容
<input type="text" name="nome">
所以尝试添加一个包装doGet和doPost的方法,如下所示:
public void doGet(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException
processRequest(request,response);
public void doPost(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException
processRequest(request,response);
public void processRequest(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException
String nome = "PutYourNameHere";
request.setAttribute("nome",nome);
RequestDispatcher view = request.getRequestDispatcher("index.jsp");
view.forward(request, response);
【讨论】:
为什么 doGet 是必须的?其背后的任何具体原因。 所以正确的解决方案是在表单提交本身中将方法更改为 POST。【参考方案2】:看来你的表单方法不正确
【讨论】:
以上是关于HTTP 状态 405 - 此 URL 不支持 HTTP 方法 GET [重复]的主要内容,如果未能解决你的问题,请参考以下文章
HTTP 状态 405 - 此 URL 不支持 HTTP 方法 GET [重复]
HTTP 状态 405 - 此 URL 不支持 HTTP 方法 POST
Apache Tomcat HTTP 状态 405 - 此 URL 不支持 HTTP 方法 GET [重复]
HTTP 状态 405 - 此 URL 不支持 HTTP 方法 GET
HTTP 状态 405 - 此 URL 不支持 HTTP 方法 GET - RequestDispatcher 出现错误