2012-04-07 51 views
2

我有一個名爲HelloServlet的servlet ..創建Servlet時的「HTTP 405」? (doPost方法和實施的doGet)

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

我把它編譯成一個.class文件,我把它放在我的tomcat目錄C:/tomcat/webapps/ALTest1/WEB-INF/classes/下 - 我做了servlet映射(我把url-pattern的作爲/hi)和C:/tomcat/webapps/ALTest1/WEB-INF/web.xml

一切爲了它的servlet進入正常工作,但是當我去我的瀏覽器在http://localhost:8080/ALTest1/hi訪問它,我得到一個錯誤信息說:

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

...這是奇怪的,因爲我有我的HelloServlet.class文件中同時doPostdoGet方法。因此,即使doGet不受支持,我也有doPost方法來處理POST,但它仍然無法工作。

+1

也許現在已經很晚了,但我還沒有看到問題。小心向我們展示servlet映射? – Imp 2012-04-07 23:58:50

+0

當然可以!我的servlet映射是:<?XML版本= 「1.0」?> \t HiEverybody \t HelloServlet \t HiEverybody \t /HI Alejandro 2012-04-08 00:08:28

回答

8
public void doGet(ServletRequest request, ServletResponse response) 

這應該是HttpServletRequest和HttpServletResponse,就像在doPost中一樣。

總是使用@Override,它會告訴你這個錯誤。

+0

布拉沃!好眼睛(我錯過了論點不匹配!)。有關「@Override」的出色建議。偉大的迴應! – paulsm4 2012-04-08 00:09:56

+0

感謝這麼多!!!!!!!!!!!!!!!!!!!!!!!!!!!上帝祝福你!!! – Alejandro 2012-04-08 00:13:22

0

看來你的servlet java類沒有包。對於運行拋出主要方法的普通java程序,如果沒有指定包,java類將處於默認包中。但是,對於Web應用程序,您需要在web.xml中指定軟件包名稱。

+0

我該怎麼做?我是servlets的新手 – Alejandro 2012-04-08 00:07:05

相關問題