2010-05-23 56 views
0

我正在使用一個爲我的jsp工具實現Filter的類。它看起來像這樣:使用過濾器來爲特定頁面提供服務?

public class MyFilter implements Filter 
{ 
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 
     throws IOException, ServletException 
    { 
     request.getRequestDispatcher("mypage.jsp").forward(request, response); 
    } 
} 

因此,目標「mypage.jsp」只是坐在我的頂級目錄中。該過濾器工作正常,如果我輸入網址,如:

http://www.mysite.com/foo 
http://www.mysite.com/boo 

,但如果我進入一個尾隨斜線,我會得到一個404:

http://www.mysite.com/foo/ 
http://www.mysite.com/boo/ 

HTTP ERROR: 404 
/foo/mypage.jsp 

RequestURI=/foo/mypage.jsp 

,如果我進入最後的斜線看來,然後過濾以爲我想它尋找mypage.jsp在子文件夾FOO或噓聲,但我真的總是希望它只是在找到它:

http://www.mysite.com/mypage.jsp 

我該怎麼辦呢?

謝謝

回答

0

使請求調度員絕對路徑 - 使用 「/mypage.jsp」 而不是 「mypage.jsp」。該資源然後從webapp上下文的根中解析出來。

+0

謝謝你的工作!我發現我的css文件和其他相關資源無法解析,我必須在mypage.jsp中更新它們的路徑,以便在路徑之前使用正斜槓,如「csspath =/mypage.css」而不是「csspath = mypage .css「,可以嗎? 謝謝! – user246114 2010-05-23 21:51:16

+0

我很高興它的工作原理,但我不確定這是個好主意。爲什麼你想允許用戶輸入任何映射到根的URL? – mdma 2010-05-23 21:55:47

+0

嗯,我想支持像twitter這樣的東西,其中www.mysite/username由一個只爲它們生成頁面的jsp頁面處理。我無法爲每個用戶創建一個真正的文件夾,所以認爲這種'網址重寫'會起作用?謝謝 – user246114 2010-05-23 23:01:57

相關問題