Vin*_*mar 23 java servlets chain servlet-filters
chain.doFilter(req,res);
我们在servlet程序中使用了它.我想知道doFilter()servlet 中该方法的用途是什么?还有什么在Java servlet中使用过滤器和链概念?
Boz*_*zho 35
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
}
Run Code Online (Sandbox Code Playgroud)
您还可以选择不调用chain.doFilter(..)在哪种情况下永远不会调用servlet.这对于安全目的很有用 - 例如,您可以检查是否有用户登录.
Pra*_*shi 21
什么是过滤器?
Filters用于intercept and process requests在将它们发送到servlet之前(在请求的情况下).
要么
Filters用于intercept and process a response在它们被servlet发送回客户端之前.
为什么使用它们?
- 过滤器可以执行安全检查.
- 压缩响应流.
- 创建不同的响应.
doFilter()做什么?
的
doFilter()被称为every time容器确定该过滤器应被应用到页面.
它需要 three arguments
- > ServletRequest
- > ServlerResponse
- > FilterChain
所有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并且driven由filter elements你定义DD.
| 归档时间: |
|
| 查看次数: |
26831 次 |
| 最近记录: |