1. 程式人生 > >Servlet執行原理及404、500、405異常原因和解決方法總結

Servlet執行原理及404、500、405異常原因和解決方法總結

一、Servlet執行原理

比如,在瀏覽器位址列輸入

         http://ip:port/web01/hello

整個通訊流程如下圖所示:

分步解釋:

         1、瀏覽器依據ip,port建立與servlet容器(容器同時也是一個簡單的web伺服器)之間的連線。

         2、瀏覽器將請求資料打包(按照http協議,該資料包也稱為請求資料包)。

         3、瀏覽器傳送請求資料包給容器。

         4、容器收到請求資料包之後,解析該資料包

         5、將4中解析之後得到的資料封裝到request物件上,同時,容器還要建立response物件。

         6、容器要依據請求資源路徑("/web01/hello")找到servlet的配置,然後建立servlet物件。

         7、容器呼叫servlet物件的service方法。容器會將事先建立好的request,response作為引數傳遞給service方法。

         8-10、在service方法裡面,可以通過request物件獲得請求引數,並進行相應的處理,處理結果會放到response物件裡面。

         11-13、容器從response物件中取出處理結果,然後打包(按照http協議,該資料包稱之為響應資料包)。再將響應資料包傳送給瀏覽器。

         14-15、瀏覽器收到響應資料包之後,解析處理結果,然後生成相應的頁面。

其實Java Web開發人員需要手動編寫程式碼的部分主要在8-10,因為其他部分工作已被web伺服器和開發工具完成。

二、常見異常及處理辦法

    (1)404

           伺服器依據請求資源路徑找不到對應的資源。

        1)錯誤原因:
            a,請求地址寫錯了
            b,<servlet-name>不一致
        2)解決方式:
             a,依據http://ip:port/appname/servlet-url檢查請求地址。
             b,檢查web.xml檔案。
    (2)500

          執行時出錯。

        1)錯誤原因:
            a,配置檔案類名寫錯了。
            b,沒有繼承HttpServlet。
            c,程式程式碼寫錯。
        2)解決方式:
            a,檢查web.xml檔案。servlet-class中有沒有把類名寫錯(必須是完整類名)
            b,檢查程式程式碼。
    (3)405

          方法異常。

        1)錯誤原因:
            service方法的簽名不正確
        2)解決方式:
            檢查service方法的簽名(方法名、返回型別、引數型別、異常型別)。