<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(僞靜态)
注意:
1)url-pattern要麼以 / 開頭,要麼以*開頭。 例如, itcast是非法路徑。
2)不能同時使用兩種模糊比對,例如 /itcast/*.do是非法路徑
3)當有輸入的URL有多個servlet同時被比對的情況下:
4)精确比對優先。(長的最像優先被比對)
5)以字尾名結尾的模糊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處理
3)DefaultServlet程式到day10應用的根目錄下查找是存在一個名稱為index.html的靜态檔案。
4)如果找到該檔案,則讀取該檔案内容,傳回給浏覽器。
5)如果找不到該檔案,則傳回404錯誤頁面。
結論: 先找動态資源,再找靜态資源。