2013-10-28 292 views
0

我試圖谷歌這個問題,但似乎谷歌搜索引擎把它讀成一些特殊字符。「/」和「/ *」有什麼區別?

那麼,什麼是服務器「/」和「/ *」映射之間的區別是什麼?

+0

參考http://docs.oracle.com/cd/E13222_01/wls/docs81/webapp/web_xml.html – Hariharan

回答

1

模式/將使你的servlet的應用程序的默認servlet,而模式/ *將迫使一切都通過你的servlet ..

+0

,什麼是默認的servlet和之間的差異一切都被迫通過它?哪一個先來? – Adelin

2

SRV.11.2 Specification of Mappings

的字符串與‘/’字符開始並且以‘/*’後綴結束用於路徑映射。

  • ‘*.’前綴開頭的字符串用作擴展 映射。
  • 僅含‘/’字符的字符串表示的「默認」的servlet 應用的。在這種情況下,servlet路徑是 請求URI減去上下文路徑,路徑信息爲空。

所有其他字符串僅用於精確匹配。

我強調

<servlet-mapping> 
     <servlet-name>XServlet</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 

如果您看到映射XServlet這就是匹配的所有請求,每個請求命中XServlet

凡爲

<servlet-mapping> 
      <servlet-name>XServlet</servlet-name> 
      <url-pattern>/</url-pattern> 
     </servlet-mapping> 

現在XServlet是我的默認的servlet應用程序,它服務於static資源。

只是爲了澄清進一步混亂:How to access static resources when mapping a global front controller servlet on /*

+1

用於指定「servlet規範鏈接」的+1。 –

+1

@Aniket謝謝aniket,該鏈接清除比我在這裏寫的東西更多的東西:) –