2012-04-07 4 views
2

내가 HelloServlet라는 이름의 서블릿이 .. 나는 .class 파일로 컴파일하고 난 C:/tomcat/webapps/ALTest1/WEB-INF/classes/에서 내 바람둥이 디렉토리에 배치서블릿을 만들 때 "HTTP 405"?

import java.io.*; 
    import javax.servlet.*; 
    import javax.servlet.http.HttpServlet; 
    import javax.servlet.http.HttpServletRequest; 
    import javax.servlet.http.HttpServletResponse; 
    public class HelloServlet extends HttpServlet 
    { 
public void doGet(ServletRequest request, ServletResponse response) 
throws ServletException, IOException 
{ 


     response.setContentType("text/html"); 
     PrintWriter pw = response.getWriter(); 
     pw.println("<html>"); 
     pw.println("<head>"); 
     pw.println("<title> Hello World </title>"); 
     pw.println("</head>"); 
     pw.println("<body>"); 
     pw.println("<h1> Hello, World!</h1>"); 
     pw.println("</body>"); 
     pw.println("</html>"); 
     pw.close(); 




} 
public void doPost(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException 
{ 
    doGet(request, response); 
} 
    } 

(의 doPost와의 doGet 구현) - 나는 서블릿 매핑을했다 (내가 넣어 URL 패턴 /hi 등) 및 C:/tomcat/webapps/ALTest1/WEB-INF/web.xml

모두에 대한 서블릿 항목은 잘 작동하지만 http://localhost:8080/ALTest1/hi에 액세스하는 브라우저에 갈 때 나는라는 오류 메시지가 얻을 :

HTTP STATUS 405 - HTTP METHOD GET is not supported by this URL 

... 내 HelloServlet.class 파일에 모두 doPostdoGet 방법이 있기 때문에 이상합니다. 따라서 doGet이 지원되지 않는 경우에도 doPost 메서드를 사용하여 POST를 처리 할 수 ​​있지만 여전히 작동하지 않습니다.

+1

어쩌면 늦은 시간이지만 문제는 아직 보지 못했습니다. 서블릿 매핑을 보여 주겠니? – Imp

+0

물론! 내 서블릿 매핑은 다음과 같습니다 \t <서블릿 이름> HiEverybody \t <서블릿 클래스> HelloServlet <서블릿 매핑> \t <서블릿 이름> HiEverybody \t /하이 Alejandro

답변

8
public void doGet(ServletRequest request, ServletResponse response) 

doPost와 마찬가지로 HttpServletRequest와 HttpServletResponse가 있어야합니다.

항상 @Override를 사용하십시오.이 오류에 대해 알려줬으면합니다.

+0

브라보! 좋은 눈 (나는 논쟁 불일치를 놓쳤다!). "@Override"에 대한 훌륭한 조언. 훌륭한 응답! – paulsm4

+0

고맙습니다 !!!!!!!!!!!!!!!!!!!!!!!!!!!! 신의 축복이 !!! – Alejandro

0

Servlet Java 클래스 용 패키지가없는 것 같습니다. 주 메디드를 던지는 일반 자바 프로그램의 경우 패키지가 지정되지 않으면 java 클래스가 기본 패키지에 있습니다. 그러나 웹 응용 프로그램의 경우 web.xml에 패키지 이름을 지정해야합니다.

+0

어떻게 할 수 있습니까? 나는 서블릿이 처음이다. – Alejandro

관련 문제