2009-01-19 89 views
8

我想指定一個Servlet URL模式以匹配以斜槓(「/」)結尾且僅有斜槓的URL。Servlet URL模式匹配以斜線(「/」)結尾的URL

我明白模式

 /example/path/*

將匹配

 http://example.com/example/path/

一個URL,而這似乎工作。然而,同樣的模式也將匹配的

 http://example.com/example/path/a/ 
    http://example.com/example/path/b/ 
    http://example.com/example/path/c/

網址,我只是在尋找一個URL模式,將只匹配http://example.com/example/path/也沒有匹配http://example.com/example/path/a/等。

說明:不允許使用斜線結尾的URL模式。

+0

你有沒有試過沒有尾星?例如 /example/ – 2009-01-19 21:44:50

回答

8

很有可能你不能通過在web.xml中映射來做到這一點。

您可以做的是將servlet映射到/ mypath/*,然後通過request.getPathInto()檢查/ mypath /之後的部分。如果是「/」,運行你的代碼。如果不是,則返回404錯誤。

1

在NetBeans中,如果我轉到web.xml文件的Servlets選項卡,IDE會抱怨:「錯誤:URL模式不能以斜槓(/)結尾」。從URL spec,它讀取,

httpurl  = "http://" hostport [ "/" hpath [ "?" search ]] 
hpath   = hsegment *[ "/" hsegment ] 

所以是的,具有結尾斜槓的URI是無效的。

相關問題