url-pattern | 瀏覽器輸入 | |
---|---|---|
精確匹配 | /first | http://localhost:8080/first |
/test/demo1 | http://localhost:8080/test/demo1 | |
模糊匹配 | /* | http://localhost:8080/任意路徑 |
/test/* | http://localhost:8080/test/任意路徑 | |
*.后綴名 | http://localhost:8080/任意路徑.do | |
*.do | http://localhost:8080/任意路徑.do | |
*.action | http://localhost:8080/任意路徑.action | |
*.html(偽靜態(tài)) | http://localhost:8080/任意路徑.html |
注意:
- 1.url-pattern要么以 / 開頭,要么以*開頭。 例如, test是非法路徑。
- 2.不能同時使用兩種模糊匹配,例如 /test/*.do是非法路徑
- 3.當(dāng)有輸入的URL有多個servlet同時被匹配的情況下:
- 3.1 精確匹配優(yōu)先。(長的最像優(yōu)先被匹配)
- 3.2 以后綴名結(jié)尾的模糊url-pattern優(yōu)先級最低!!!
servlet缺省路徑
servlet的缺省路徑(<url-pattern>/</url-pattern>)是在tomcat服務(wù)器內(nèi)置的一個路徑。該路徑對應(yīng)的是一個DefaultServlet(缺省Servlet)。這個缺省的Servlet的作用是用于解析web應(yīng)用的靜態(tài)資源文件。
問題: URL輸入http://localhost:8080/index.html 如何讀取文件????
- 到當(dāng)前day10應(yīng)用下的web.xml文件查找是否有匹配的url-pattern。
- 如果沒有匹配的url-pattern,則交給tomcat的內(nèi)置的DefaultServlet處理
- DefaultServlet程序到day10應(yīng)用的根目錄下查找是存在一個名稱為index.html的靜態(tài)文件。
- 如果找到該文件,則讀取該文件內(nèi)容,返回給瀏覽器。
- 如果找不到該文件,則返回404錯誤頁面。
結(jié)論: 先找動態(tài)資源,再找靜態(tài)資源。