2014-01-30 9 views
0

Я новичок в технологии сервлета/jsp/portlet, и я пытаюсь понять, так как описано, что у меня проблема с этим сервлет:servlet eclipse on tomcat7 HTTP Status 405 - HTTP-метод POST не поддерживается этим URL-адресом


package trekking; 

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; 

/** 
* Servlet implementation class Login 
*/ 
public class Login extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    /** 
    * see HttpServlet#HttpServlet() 
    */ 
    public Login() { 
    } 

    /** 
    * @param name 
    * @param pass 
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    * 
    */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse response, String name, String pass) throws ServletException, IOException { 
String u,p; 
     u=request.getParameter(name); 
     p=request.getParameter(pass); 
     response.setContentType("text/html"); 
     PrintWriter out = response.getWriter(); 
     out.println("<html>"); 
     out.println("<head>"); 
     out.println("<title>Hello World!</title>"); 
     out.println("You are "+u+"!"); 
     out.println("</head>"); 
     out.println("<body>"); 
     out.println("<h1>Hello World!</h1>"); 
     out.println("</body>"); 
     out.println("</html>"); 
    } 
} 

Это называется в HTML-страницу с помощью этой формы:

<form action="Login" method="post"> 
<label for="uname">UserName</label> 
<input name="user" id="uname" type="text"></input> 
<label for="pwd">Password</label> 
<input name="pass" id="pwd" type="password"></input> 
<input type="submit" value="invia"> 
</form> 

Я здесь, если вам нужно что-нибудь еще. Спасибо. : D

ответ

2

Вы не преодолели метод doPost. Вы перегрузили его.

protected void doPost(HttpServletRequest request, HttpServletResponse response, String name, String pass) throws ServletException, IOException { 

И поскольку ничего звонит перегруженный метод, вы получите по умолчанию наследуется HttpServlet#doPost() поведения, возвращающей 405.

+0

Отлично работает! (Корректор IDE добавил эти 2 параметра) – Norman

+0

@ user3254815 Я думаю, что он добавил их, потому что вы использовали 'name' вместо строкового литерала' 'name" '. –

+0

можно попробовать. – Norman

0

Снимите «имени» и «передает» аргументов из вашего метода doPost.

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