[英]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 filters
的order of the invocation of filters
并由您在DD
定义的filter elements
driven
。
过滤器可以补充Servlets。 对于用法,您应该阅读“过滤器的基本要素” 。 过滤器使用Chain of Responsibility GoF模式实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.