如何調(diào)用Servlet來處理請求
調(diào)用Servlet處理請求
一,< servlet>元素及其子元素,聲明一個Servlet。
< description>*:為Servlet指定一個文本描述。
< display-name>*:為Servlet提供一個簡短的名字被某些工具顯示。
< icon>*:為Servlet指定一個圖標,在圖形管理工具中表示該Servlet。
< servlet-name>:Servlet的名字,***性。
< servlet-class>or< jsp-file>:< servlet-class>為Servlet的完整路徑。< jsp-file>指定web應(yīng)用程序中的jsp文件完整路徑以/開始對一個jsp文件做URL映射。
< init-param>*:定義Servlet初始化參數(shù)。
< description>*:初始化參數(shù)文本描述。
< pararm-name>:初始化參數(shù)的名字。
< param-value>:初始化參數(shù)的值。
< load-on-startup>?:WEB應(yīng)用程序被啟動時,Servlet被加載的順序。內(nèi)容為一個整型值。
負數(shù)或沒有設(shè)定這個元素表示Servlet容器將在客戶端請求這個Servlet的時候加載它
正數(shù)或o表示W(wǎng)EB應(yīng)用程序被啟動時按數(shù)值大小由小到大初始化Servlet。
如果同時包含< jsp-file>元素和< load-on-startup>,則jsp文件也被預(yù)編譯并加載。
< run-as>?:執(zhí)行組件的角色
< descripttion>:文本描述。
< role-name>:指定執(zhí)行組件的角色名字。
< security-role-ref>*:聲明在組件或部署的組件的代碼中的安全角色引用。
< description>*:安全角色文本描述。
< role-name>:使用的安全角色的名字。
< role-line>?:指定到一個安全角色的引用。
二,< servlet-mapping>元素及其子元素,在servlet和url之間定義一個映射。
< servlet-name>:Servlet的名字,***性和一致性。與< servlet>元素中聲明的名字一致。
< url-pattern>:指定相對于Servlet的URL的路徑。該路徑相對于web應(yīng)用程序上下文的根路徑。
三,加載Servlet的過程
容器的Context對象對請求路徑(URL)做出處理,去掉請求URL的上下文路徑后,按路徑映射規(guī)則和Servlet映射路徑(< url-pattern>)做匹配,如果匹配成功,則調(diào)用Servlet處理請求。
匹配規(guī)則:
請求URL精確匹配,如果成功則調(diào)用Servlet處理請求。匹配最長的路徑前綴,以/為路徑分隔符,按路徑樹逐級匹配,選擇最長匹配的Servlet來處理。如果前面都沒有匹配成功,則容器會讓W(xué)EB應(yīng)用程序來調(diào)用Servlet處理請求。如果沒有定義默認Servlet,容器將向客戶端發(fā)送404(請求資源不存在)錯誤信息。
【編輯推薦】