修改过滤器链 - 或者选择servlet以使用过滤器响应请求

时间:2010-06-11 01:30:29

标签: java filter

我正在尝试使用过滤器来映射请求。我试图这样做有两个原因,首先是动态生成URI并将它们映射到适当的servlet,然后捕获未注册的URI并适当地处理它们。

所以我使用了一个catch-all过滤器来处理URI并确定响应。我想要一些修改过滤器链的方法,或者某种方式来设置响应来自过滤器内的请求的servlet。我使用filterConfig.getServletContext().getRequestDispatcher().forward()发送到jsp是不成功的,理想情况下我想映射到servlet但无法弄清楚如何。

我没有在servlet中执行此操作的原因是我有一些在web.xml中修复的URI,如果我使用catch-all servlet,则这些URI不会被映射。这可能吗,它是干净的还是会变得非常混乱?

1 个答案:

答案 0 :(得分:2)

我认为这不是正确的做法。

如果你看一下web MVC框架的作用,他们就有一个前端控制器servlet,它将URL映射到控制器,控制器本身可以接受HTTP请求并返回HTTP响应。我认为这是一个值得模仿的设计,而不是你的过滤器创意。