2015-11-12 8 views
-1

HTTP Status 405 - HTTP метод GET не поддерживается этим URLHTTP Status 405 - HTTP метод GET не поддерживается этим URL

У меня возникли проблемы с получением страницы на работу, у меня есть свой метод формы, чтобы отправить и мой сервлет имеет 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> 
+0

опечатка ошибка при установке атрибута "Нома" – Braj

+0

где ваша форма? Из исключения «HTTP-метод GET не поддерживается этим URL-адресом», ясно, что форма запрашивает метод GET, тогда как вы не определили какой-либо метод GET в сервлет. по умолчанию метод формы - GET. вы должны установить его явно POST. [Метод HTML-формы] (http://www.w3schools.com/tags/att_form_method.asp) – Braj

ответ

0

Попробуйте добавить метод doGet()!

protected void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{ 
    //your code here 
} 

Try, чтобы добавить что-то вроде этого

<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); 
    } 
+0

Почему doGet должен? Любая конкретная причина этого. – Braj

+0

, потому что он вызывает метод get, я думаю, – Dwhitz

+0

, поэтому правильным решением является изменение метода POST в представлении самой формы. – Braj

-1

Похоже, ваш метод форма не является правильным

Смежные вопросы