1. 程式人生 > >Java Web學習---Servlet學習(學習步驟介紹)

Java Web學習---Servlet學習(學習步驟介紹)

Servlet學習的大綱:

1. servlet概念及相關介面簡介

2. servet 執行過程

3. servlet路徑對映

4. 預設servlet          --應用

5. servlet生命週期(重點)   --理解(重點)

l 6. Servlet自動載入

7. Servlet執行緒安全

8. servletConfig物件

9. Servlet相關介面詳解

10. ServletContext物件     --知識點

1 如何開發一個Servlet

1.1 步驟:

1)編寫java類,繼承HttpServlet

2)重新doGetdoPost方法

3Servlet程式交給tomcat伺服器執行!!

3.1 servlet程式的class碼拷貝到WEB-INF/classes目錄

3.2 web.xml檔案中進行配置

<!-- 配置一個servlet -->

<!-- servlet的配置 -->

<servlet>

<!-- servlet的內部名稱,自定義。儘量有意義 -->

<servlet-name>FirstServlet</servlet-name>

<!-- servlet的類全名: 包名+簡單類名 -->

<servlet-class

>gz.itcast.a_servlet.FirstServlet</servlet-class>

</servlet>

<!-- servlet的對映配置 -->

<servlet-mapping>

<!-- servlet的內部名稱,一定要和上面的內部名稱保持一致!! -->

<servlet-name>FirstServlet</servlet-name>

<!-- servlet的對映路徑(訪問servlet的名稱) -->

<url-pattern>/first</url-pattern>

</servlet-mapping>

問題:訪問次URL:  http://localhost:8080/day10/first

前提: tomcat伺服器啟動時,首先載入webapps中的每個web應用的web.xml配置檔案。

http://: http協議

localhost 到本地的hosts檔案中查詢是否存在該域名對應的IP地址

127.0.0.1

8080    找到tomcat伺服器

/day10     tomcatwebapps目錄下找 day10的目錄

/first    資源名稱。

1)在day10web.xml中查詢是否有匹配的url-pattern的內容(/first

2)如果找到匹配的url-pattern,則使用當前servlet-name的名稱到web.xml檔案中查詢是否相同名稱的servlet配置

3)如果找到,則取出對應的servlet配置資訊中的servlet-class內容:

字串: gz.itcast.a_servlet.FirstServlet

通過反射:

a)構造FirstServlet的物件

b)然後呼叫FirstServlet裡面的方法

2 Servlet的對映路徑

<servlet-mapping>

<!-- servlet的內部名稱,一定要和上面的內部名稱保持一致!! -->

<servlet-name>FirstServlet</servlet-name>

<!-- servlet的對映路徑(訪問servlet的名稱) -->

<url-pattern>/first</url-pattern>

</servlet-mapping>

                    url-pattern                   瀏覽器輸入

精確匹配             /first                 http://localhost:8080/day10/first

/itcast/demo1          http://localhost:8080/day10/itcast/demo1

模糊匹配             /*                   http://localhost:8080/day10/任意路徑

/itcast/*  http://localhost:8080/day10/itcast/任意路徑

*.字尾名              http://localhost:8080/day10/任意路徑.do

*.do

*.action

*.html(偽靜態)

注意:

1url-pattern要麼以 / 開頭,要麼以*開頭。  例如, itcast是非法路徑。

2)不能同時使用兩種模糊匹配,例如 /itcast/*.do是非法路徑

3)當有輸入的URL有多個servlet同時被匹配的情況下:

3.1 精確匹配優先。(長的最像優先被匹配)

3.2 以後綴名結尾的模糊url-pattern優先順序最低!!!

3 servlet預設路徑

servlet的預設路徑(<url-pattern>/</url-pattern>)是在tomcat伺服器內建的一個路徑。該路徑對應的是一個DefaultServlet(預設Servlet)。這個預設的Servlet的作用是用於解析web應用的靜態資原始檔

問題: URL輸入http://localhost:8080/day10/index.html 如何讀取檔案????

1)到當前day10應用下的web.xml檔案查詢是否有匹配的url-pattern

2)如果沒有匹配的url-pattern,則交給tomcat的內建的DefaultServlet處理

3DefaultServlet程式到day10應用的根目錄下查詢是存在一個名稱為index.html的靜態檔案。

4)如果找到該檔案,則讀取該檔案內容,返回給瀏覽器。

5)如果找不到該檔案,則返回404錯誤頁面。

結論: 先找動態資源,再找靜態資源。