1. 程式人生 > >瀏覽器訪問tomcat,頁面訪問出錯404,405,500

瀏覽器訪問tomcat,頁面訪問出錯404,405,500

在剛開始進行Web應用開發的時候,經常看見頁面出現404這個數字,我們一般會稱之為執行產生了404錯誤。類似於404這個數字,還有可能在頁面上看到405、500這兩個數字,他們都是伺服器執行完客戶端的請求以後,返回給客戶端的一個關於執行結果的狀態編碼說明。 如果在執行結果頁面中沒有看到期待的頁面,卻看到了404、405、500這樣的數字,那麼代表著伺服器告訴客戶端執行產生了錯誤,掌握何種錯誤情況產生對應的數字將有利於問題的解決。

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

    1. 輸入的地址有誤(應用名大小寫不正確,名稱拼寫不正確)

    2. 在web.xml檔案中< servlet>和< servlet-mapping>中的兩個< servlet-name>不一致

    3. 沒有將工程部署到Tomcat的webapps下面

    4. Web工程部署時的結構沒有遵循Servlet的規範
      具體的解決辦法就是根據上面提到的4種情況,逐條進行檢查

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

    1. service方法名寫錯,字母順序不對或大小寫錯誤

    2. service方法引數型別與標準不一致,或引數順序與標準不一致。一定是先HttpServletRequest,然後是HttpServletResponse型別

    3. service方法異常、返回值型別與標準不一致,一定是丟擲ServletException、IOException。返回值型別是void。
      解決405錯誤的方法即檢查service方法是否存在,簽名(方法名、引數、返回值、異常型別)是否與覆蓋的父類中的方法一致。
  • 500的錯誤原因是請求的Servlet在執行service方法的過程中出現了錯誤,程式不能繼續運行了。以下情況容器都將視為500的一種情況,而返回給客戶端這個錯誤說明。

    1. Servlet沒有繼承HttpServlet或實現Servlet介面

    2. web.xml檔案中的< servlet-class>寫錯,與真正的包名類名不符

    3. service方法中的程式碼執行時丟擲異常