關於Servlet報錯:405 HTTP method GET is not supported by this URL問題解決方法


在編寫一個項目的某個Servlet時候,在運行時候,報出了錯誤 405 HTTP method GET is not supported by this URL,在通過查詢,得到大家很多解決方法,為了能總結歸納,現在都列舉出來,這些都不是我的解決方法,我也沒有每一種情況都測試,如果方法中有錯誤的請忽略:

網友版1:出處http://weishang-java.iteye.com/blog/688133(這個可能不是原創的地址,但是是我看到的,如果影響到原作者,請與我聯系修改或者刪除)

問題產生原因:

1,繼承自HttpServlet的Servlet沒有重寫對於請求和響應的處理方法:doGet或doPost等方法;默認調

用父類的doGet或doPost等方法;

2,父類HttpServlet的doGet或doPost等方法覆蓋了你重寫的doGet或doPost等方法;

不管是1或2,父類HttpServlet的doGet或doPost等方法的默認實現是返回狀態代碼為405的HTTP錯誤表示

對於指定資源的請求方法不被允許。

問題解決方法:

1,子類重寫doGet或doPost等方法;

2,在你擴展的Servlert中重寫doGet或doPost等方法來處理請求和響應時 不要調用父類HttpServlet的

doGet或doPost等方法,即去掉super.doGet(request, response)和super.doPost(request, response);

網友版2:出處http://bbs.jxjyzy.com/space/viewspacepost.aspx?postid=30811(這個可能不是原創的地址,但是是我看到的,如果影響到原作者,請與我聯系修改或者刪除)

問題產生原因及解決方法:

在Servlet中接收參數要寫在方法最前面。

以上的兩種方法我沒有做針對性的測試,只是沒有解決了我的問題,如果其中有錯誤或者沒有解決了您的問題,可以繼續往下看,試試我的解決方法,以下是我的解決方法:

問題原因分析:

我寫的Servlet是一個判斷表單的程序,當我正常通過表單提交數據的時候,這時是不會報錯的,只有當我直接訪問Servlet的時候,才會報出上述錯誤,於是我想到了我的表單是通過POST方式提交的,而且我的Servlet中是寫doPost方法,而沒有寫doGet方法,所以,當直接訪問一個頁面或者一個地址默認是通過GET方式訪問的,所以默認調用的是doGet方法,而我的Servlet中沒有doGet方法,才導致了上述錯誤的產生。

問題解決方法:

在Servlet中要有與提交方式對應的方法,即doPost或者doGet方法,直接訪問Servlet而且沒有聲明訪問類型,那么默認的是GET方式,所以要有doGet方法,如果以POST方式提交表單或者其他POST方式訪問Servlet那么就要有doPost方法,如果上述兩種情況都有可能出現,那么doGet和doPost就都必須存在,否則就會報出錯誤。

以上是我對於解決405 HTTP method GET is not supported by this URL錯誤的一種方法,可能會對一些網友有幫助,也可能沒有幫到一些網友,希望大家能夠在對於問題的解決方法做以補充。如果我的方法中存在不足或者錯誤的,也歡迎大家能夠聯系我指正。

歡迎大家以任何非盈利的方式轉載本文章,轉載請注明作者和出處——津志伊戀

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM