繁体   English   中英

servlet中过滤器和链的用途是什么?

[英]What is the use of filter and chain in servlet?

chain.doFilter(req,res);
我们在servlet程序中使用了它。 我想知道servlet中doFilter()方法的用法是什么? 还有什么在Java servlet中使用过滤器和链概念?

Servlet过滤器是责任链模式的实现

关键是每个过滤器都保持在它所映射到的每个servlet的“前面”和“后面”。 因此,如果您在servlet周围有一个过滤器,那么您将拥有:

void doFilter(..) { 
    // do stuff before servlet gets called

    // invoke the servlet, or any other filters mapped to the target servlet
    chain.doFilter(..);

    // do stuff after the servlet finishes
}

您还可以选择调用chain.doFilter(..)在这种情况下,永远不会调用servlet。 这对于安全目的很有用 - 例如,您可以检查是否有用户登录。

什么是过滤器?

Filters用于在将intercept and process requests发送到servlet之前intercept and process requests (如果是请求)。

要么

Filters用于在intercept and process a response由servlet发送回客户端之前intercept and process a response

在此输入图像描述

为什么使用它们?

- 过滤器可以执行安全检查。

- 压缩响应流。

- 创建不同的响应。

doFilter()做什么?

every time容器确定应将过滤器应用于页面every time ,都会调用doFilter()

它需要three arguments

- > ServletRequest

- > ServlerResponse

- > FilterChain

functionality that your filter supposed to do执行的所有functionality that your filter supposed to do都是在doFilter()方法中实现的。

什么是FilterChain?

您的filters do not know anything about the other filters and servlet FilterChain知道order of the invocation of filtersorder of the invocation of filters并由您在DD定义的filter elements driven

过滤器可以补充Servlets。 对于用法,您应该阅读“过滤器的基本要素” 过滤器使用Chain of Responsibility GoF模式实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM