簡體   English   中英

Tomcat中的前導斜杠是什么意思 <url-pattern> ?

[英]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應用程序部署描述符中,以下語法用於定義映射:

  • 路徑映射使用以'/'字符開頭並以'/ *'后綴結尾的字符串。
  • 以“ *”開頭的字符串。 前綴用作擴展名映射。
  • 空字符串(“”)是一種特殊的URL模式,它精確地映射到應用程序的上下文根,即,形式為http://host:port/<contextroot>/ 在這種情況下,路徑信息為“ /”,而servlet路徑和上下文路徑為空字符串(“”)。
  • 僅包含“ /”字符的字符串表示應用程序的“默認” servlet。 在這種情況下,Servlet路徑是請求URI減去上下文路徑,並且路徑信息為null。
  • 所有其他字符串僅用於完全匹配。

如果有效的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM