Filter

Filter(过滤器)

其实就是对客户端发出来的请求进行过滤。 浏览器发出,然后服务器派servlet处理。 在中间就可以过滤,其实过滤器起到的是拦截的作用。

  • 作用
1
2
3
1. 对一些敏感词汇进行过滤(敏感词汇)
2. 统一设置编码(不用繁琐的设置utf-8)
3. 自动登录

Filter使用

定义一个类实现Filter

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  //构造方法
public FilterDemo() {

}

public void destroy() {

}

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println("到过滤器了");
chain.doFilter(request, response); //放行通过的代码
}

public void init(FilterConfig fConfig) throws ServletException {
// FilterConfig可以用于获取filter在注册的名字 以及初始化参数
}

new注册过滤器(url-pattern可以更改)

web.xml里面注册,注册的手法与servlet基本一样。

1
2
3
4
5
6
7
8
9
<filter>
<display-name>FilterDemo</display-name>
<filter-name>FilterDemo</filter-name>
<filter-class>guolvqi.FilterDemo</filter-class>
</filter>
<filter-mapping>
<filter-name>FilterDemo</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

url-pattern 写法格式

1. 全路径匹配  以 /  开始 

    /LoginServlet

2. 以目录匹配 以 / 开始  以 * 结束

    /demo01/*  

3. 以后缀名匹配  以 * 开始 以后缀名结束
    *.jsp  *.html *.do 

dispatcher 设置

REQUEST : 只要是请求过来,都拦截,默认就是REQUEST 
FORWARD : 只要是转发都拦截。 
ERROR : 页面出错发生跳转 
INCLUDE : 包含页面的时候就拦截。

Filter生命周期

  • 创建

在服务器启动的时候就创建。

  • 销毁

服务器停止的时候。


Filter执行顺序

  1. 客户端发出请求,先经过过滤器,如果过滤器放行,那么才能到servlet。

  2. 如果有多个过滤器, 那么他们会按照注册的映射顺序 来 排队。只要有一个过滤器,不放行,那么后面排队的过滤器以及咱们的servlet都不会收到请求。


×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. Filter(过滤器)
  2. 2. Filter使用
    1. 2.1. 定义一个类实现Filter
    2. 2.2. new注册过滤器(url-pattern可以更改)
    3. 2.3. url-pattern 写法格式
    4. 2.4. dispatcher 设置
  3. 3. Filter生命周期
  4. 4. Filter执行顺序
,