[英]What is the meaning of the leading slash / in Tomcat's <url-pattern>?
我知道我不能對過濾器映射的<url-pattern>
使用正則表達式,但是可以使用目錄模式來指定任何包含單詞myuniqws
url,如下所示:
https://my.hostname.org/myuniqws/myport/soap?wsdl
我在想這也許是正確的語法:
<url-pattern>/*myuniqws*</url-pattern>
但是我無法找到有關Tomcat <url-pattern>
語法的確切規則的文檔。
上述正則表達式是否可以按我的意願工作?
更新:
感謝下面的回答,我發現了Java Servlet規范的以下部分,該部分基本上回答了我的問題。
12.2映射規范
在Web應用程序部署描述符中,以下語法用於定義映射:
http://host:port/<contextroot>/
。 在這種情況下,路徑信息為“ /”,而servlet路徑和上下文路徑為空字符串(“”)。 如果有效的web.xml
(合並來自片段和批注的信息之后)包含映射到多個servlet的任何url模式,則部署必須失敗。
大概是指web.xml
過濾器映射的<url-pattern>
。 您可能不知道這一點,但是web.xml
被定義為Java Servlet規范的一部分。 您可以在以下位置找到有關3.1版的完整文檔(當前,最新和最好的):
https://jcp.org/aboutJava/communityprocess/final/jsr340/index.html
如果您閱讀了第12.2節(“映射的規范”),則可以確切地看到可以識別哪些類型的模式,包括您在上面請求的前綴映射。
編輯2014-11-04 :您應該知道CATALINA_HOME/conf/web.xml
(如果有的話,也可以是CATALINA_BASE/conf/web.xml
)是在Tomcat上部署的所有Web應用程序的默認配置,並且您的WEB-INF/web.xml
應用程序是WEB-INF/web.xml
是特定於您自己的Web應用程序的配置。 這兩個文件都應具有以下xmlns
語句,因此(通過它們的URI)向您表明它們已被Java Servlet規范(或至少包括Servlet規范的Java EE)所涵蓋:
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.