在Web应用程序到达JSP或Servlet之前,可以使用哪个对象来拦截对Web应用程序的所有请求?

时间:2011-01-08 05:31:31

标签: java servlets

在Web应用程序到达JSP或Servlet之前,可以使用哪个对象拦截所有对Web应用程序的请求?我认为答案可能是过滤器,但我不确定是否有更具体的答案。

3 个答案:

答案 0 :(得分:3)

过滤器是要走的路。您可以像过滤器一样映射过滤器,以便它可以覆盖整个网站,或仅覆盖部分。

编辑评论 -

是的,这几乎是你需要做的。过滤器是请求链的第一部分。好吧,在通过容器发送之后,但作为开发人员的第一部分可以访问。

过滤器可以被链接,并且每个过滤器都可以抢占请求链(因此永远不会遇到任何后来的过滤器或Servlet(JSP是Servlet),它们可以沿着请求链继续进行,并且它们可以篡夺请求的结果chain(即他们可以更改或拒绝来自更远的组件的输出。您可以将其视为Decorator模式的实现。

一些典型的过滤器包括安全过滤器(检查请求是否可以访问所需资源),压缩过滤器,请求修改过滤器(例如,Apaches mod_rewrite的功能已实现为过滤器)。过滤器可以完全取代实际的请求和响应对象(很多都通过包装现有的请求和响应对象),因此它们确实可以完全控制请求链,并且最终Servlet或静态资源不知道过滤器是否存在。

过滤器是Servlet堆栈的一个很好的方面。

答案 1 :(得分:1)

过滤器是将所有请求路由到jsp / servlet的最佳方法,

使用方法: 1.检查用户是否有有效会话。 2.向请求添加属性。 3.压缩文件下载的输出流。 4. anlayse请求,即商务分析师经常访问的页面。

答案 2 :(得分:1)

是过滤器是正确答案。只是想添加一个MVC设计模式,可以用控制器servlet完成类似的事情。在移动到其他地方之前先执行所有请求。