Servlet常見錯誤及解決方法


常見錯誤及解決方法

1. 404產生的原因為Web服務器(容器)根據請求地址找不到對應資源,以下情況都會出現404的錯誤提示:

輸入的地址有誤(應用名大小寫不正確,名稱拼寫不正確) 在web.xml文件中<servlet>和<servlet-mapping>中的兩個<servlet-name>不一致 沒有將工程部署到Tomcat的webapps下面 Web工程部署時的結構沒有遵循Servlet的規范 具體的解決辦法就是根據上面提到的4種情況,逐條進行檢查。

容器如何找到service()方法 當在瀏覽器中輸入 http://localhost:8080/firstweb/sayHi 這個地址后,容器是如何找到 HelloServlet.class這個文件並執行的呢?

首先容器會根據firstweb這個應用名找到位於webapps下面對應的文件夾,然后根據地址中的“/sayHi”到web.xml文件中尋找與之匹配的<url-pattern>節點,找到匹配的節點后會找到與該節點緊鄰的<servlet-name>節點,獲取名稱並在此尋找與該名稱相等的<servlet-name>節點,找到相等的節點后,搜尋該節點下面緊鄰的<servlet-class>節點,於是獲取到了與該地址相對應的類名,借助於ClassLoader加載該類文件,創建對象並調用service()方法,客戶端即看到了與該地址匹配的運行結果。

2. 405錯誤產生原因及解決方法 405這個錯誤的產生原因是容器找不到service方法來處理請求。以下情況容器都將視為沒有找到service()方法

service方法名寫錯,字母順序不對或大小寫錯誤 service方法參數類型與標准不一致,或參數順序與標准不一致。一定是先HttpServletRequest,然后是HttpServletResponse類型 service方法異常、返回值類型與標准不一致,一定是拋出ServletException、IOException。返回值類型是void。 解決405錯誤的方法即檢查service方法是否存在,簽名(方法名、參數、返回值、異常類型)是否與覆蓋的父類中的方法一致。

3. 500錯誤產生原因及解決方法 500的錯誤原因是請求的Servlet在執行service方法的過程中出現了錯誤,程序不能繼續運行了。以下情況容器都將視為500的一種情況,而返回給客戶端這個錯誤說明。

Servlet沒有繼承HttpServlet或實現Servlet接口 web.xml文件中的<servlet-class>寫錯,與真正的包名類名不符 service方法中的代碼運行時拋出異常 解決500的方法為依據上面三種情況依次進行檢測,逐條排除。

 


免責聲明!

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



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