當請求發送到 Servlet 容器時,容器會解析 URL,移除協議、主機、端口及 Context Path,剩下的 Servlet Path 即為 url-pattern 映射的依據。
例如:https://localhost:8080/myservlet/DisplayHeader?method=show
因此,url-pattern 映射的核心是 DisplayHeader 這一段路徑。
/target.jsp*,如 /happy/**,如 *.jsp、*.jpg/happy/*.jsp 非法/Tomcat 將不同映射類型的 Servlet 封裝為不同 Wrapper:
wildcardWrappersextensionWrappers/ → defaultWrapperexactWrappersexactWrappers)wildcardWrappers,如 /*)extensionWrappers,如 *.action,Tomcat 自動註冊 .jsp/.jspx)welcomeResources,當 servletPath 為空時)defaultWrapper,即 /)簡記:精確 > 前綴 > 後綴 > 歡迎頁 > 默認
/ 而 Filter 用 /*?/* 優先級極高,幾乎攔截所有請求(含靜態資源),適合 Filter 鏈逐個處理;但 Servlet 僅單一匹配,若用 /* 會阻礙靜態資源訪問及其他 Servlet,故通常配置為 / 作為默認入口。