2010-06-11 59 views
0

我正在嘗試使用過濾器來映射請求。我嘗試這樣做的原因有兩個,首先是動態生成URI並將它們映射到適當的servlet,其次是捕獲未註冊的URI並正確處理它們。修改過濾器鏈 - 或者選擇servlet以使用過濾器來響應請求

所以我使用了一個catch-all過濾器來處理URI並確定響應。我想要一些修改過濾器鏈的方法,或者某種方法來設置響應過濾器內請求的servlet。我一直使用filterConfig.getServletContext().getRequestDispatcher().forward()發送給jsp失敗,理想情況下,儘管我想映射到一個servlet,但無法弄清楚如何。

我不在servlet內部做這件事的原因是我有一些在web.xml中修復的URI,如果我使用一個全接觸的servlet,那麼這些URI不會被映射。這是可能的,它是乾淨的還是會變得非常混亂?

回答

2

我不認爲這是正確的做法。

如果你看看什麼是web MVC框架,他們有一個前端控制器servlet,它將URL映射到控制器,控制器本身可以接受HTTP請求並返回HTTP響應。我認爲這是一個值得仿效的設計,而不是過濾器的想法。

+0

好的,我們正在談論一個servlet鏈?有一個例子嗎? – klonq 2010-06-11 01:53:06

+0

當然 - Spring MVC。除了控制器不擴展HttpServlet。 – duffymo 2010-06-11 01:53:57

相關問題