2013-04-20 71 views
0

我有我的應用程序在URI重寫添加不必要的上下文路徑

http://myhost/my-app/test/bat 

找到資源和它的作品不錯,現在有這

http://myhost/my-app/xxx/test/bat, 

一個新的請求,我只是希望它rewrited到舊人,所以我創造一個過濾器:

if(uri.endsWith("/xxx/test/bat")){ 
    uri=uri.replace("/xxx/test", "/test"); 
    request.getRequestDispatcher(uri).forward(req, res); 
    } 
else 
    chain.doFilter(req, res); 

但Tomcat容器重寫此URL:

http://myhost/my-app/my-app/test/bat 

/我的應用程序內是contextPath中

爲什麼我得到這額外的我的應用程序內?我哪裏做錯了?

回答

1

你是如何得到你的uri值的?它的價值是什麼?我懷疑它可能是「/ my-app/xxx/test/bat」。如果路徑以「/」開頭,則使用request.getRequestDispatcher時,它將被解釋爲相對於當前上下文根。

+0

你是對的!我使用request.getRequestURI()並獲取「/ my-app/xxx/test/bat」。我將參數更改爲「/ test/bat」,它現在可用。謝謝! – Spech 2013-04-21 14:22:25