Servlet的映射有兩個子標籤的url-pattern和servlet名。 url-pattern的指定爲其在servlet的名字給這個servlet應該被稱爲URL的類型。要注意的是,容器將使用區分大小寫爲servlet的匹配字符串比較。
的第一個規範url-pattern
a web.xml
服務器上的servlet容器上的服務器上下文的文件。COM的模式匹配,在<url-pattern>/status/*</url-pattern>
如下:
第二規格的
url-pattern
位於路徑A上下文
http://server.com/server/status/synopsis = Matches
http://server.com/server/status/complete?date=today = Matches
http://server.com/server/status = Matches
http://server.com/server/server1/status = Does not match
/在example.com在代理上的例子的模式匹配,在<url-pattern>*.map</url-pattern>
如下:
http://server.com/server/US/Oregon/Portland.map = Matches
http://server.com/server/US/server/Seattle.map = Matches
http://server.com/server/Paris.France.map = Matches
http://server.com/server/US/Oregon/Portland.MAP = Does not match, the extension is uppercase
http://example.com/examples/interface/description/mail.mapi =Does not match, the extension is mapi rather than map`
url-mapping
的第三規範,如果沒有其他模式匹配,則包含模式<url-pattern>/</url-pattern>
的映射將匹配請求。這是默認的映射。映射到此模式的servlet稱爲默認servlet。
默認映射通常指向應用程序的第一頁。顯式提供默認映射還可以確保應用程序返回的格式錯誤的URL請求由應用程序處理,而不是返回錯誤。
下面的servlet映射元素將server
servlet實例映射到默認映射。
<servlet-mapping>
<servlet-name>server</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
對於包含該元素的上下文中,即沒有被另一個映射處理的任何請求被轉發到server
的servlet。
,最重要的是我們應該知道的URL路徑映射
- 容器將嘗試找到請求到Servlet的路徑的路徑的精確匹配約規則。成功的匹配選擇servlet。
- 容器將遞歸地嘗試匹配最長的路徑前綴。這是通過一次將路徑樹降級到一個目錄來完成的,使用'/'字符作爲路徑分隔符。最長的匹配決定了所選的servlet。
- 如果URL路徑中的最後一個段包含擴展名(例如.jsp),那麼servlet容器將嘗試匹配處理擴展請求的servlet。擴展名被定義爲最後'。'字符後的最後一個段的一部分。
- 如果前三條規則都不導致servlet匹配,那麼容器將嘗試提供適合所請求資源的內容。如果爲應用程序定義了「默認」servlet,它將被使用。
參考URL Pattern
第一讀取servlet規範和映射。請參閱@var_給出的答案。如果您再次遇到問題或異常,請粘貼相關異常,社區將嘗試調試該問題。 –
您應該接受讓社區從中受益的答案。 –