2010-06-11 22 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

相关问题