javaweb组件之过滤器

1. 过滤器的概述

过滤器(Filter)就是通过对web服务器管理的资源(jsp,Servlet,HTML文件)进行拦截,从而实现特殊功能(敏感词的过滤,自动登录的功能);

2.过滤器的工作的原理

过滤器就是在接受到自己相同访问路径的请求时候,先进行一次过滤
有两种情况:

  1. 如果过滤器同意放行,就会放行交给下一个过滤器
  2. 如果不同意放行的话就不会执行请求所要执行的程序

执行的一般的顺序为:
请求---->过滤器1---->过滤器2…---->过滤器n---->目的地(jsp,Servlet)

3.如何实现一个过滤器

  1. 实现一个接口(Filter)
  2. 在实现接口的类上面添加一行注释:
@webFilter(urlPatterns="需要过滤的路径")
  1. 通过Filter的doFilter方法使其放行,是否使其进入下一个过滤器
filterChain.doFilter(servletRequest,servletResponse);//进入到下一个滤波器

4.滤波器的匹配路径的方法

(1)精确匹配,路径是什么,就匹配此路径
比如/s1 /s3
(2)前缀匹配
前缀匹配的方法是:/* 匹配的是所有的路径
/user/* 匹配的是所有以user为开头的路径
(3)后缀匹配
*. jsp 匹配所有的.jsp 的文件

5.滤波器的生命的周期

Filter接口一共有只有三个方法
(1)init方法:只会在初始化的时候使用一次

void init(FilterConfig var1) throws ServletException;
//其中FilterConfig的作用是:FilterConfig对象提供对servlet环境及web.xml文件中指派的过滤器名的访问。
//FilterConfig对象具有一个getInitParameter方法,它能够访问部署描述符文件(web.xml)中分配的过滤器初始化参数。

(2)destroy方法:会在程序调用停止的时候执行
(3)doFilter方法:doFilter()方法每次的访问请求如果符合拦截条件都会调用

6.多个过滤器执行的顺序的问题

过滤器执行的顺序取决于过滤器的名称(按字典顺序)
或者是web.xml文件里面的

<filter>
    <!-- 过滤器名字 -->
    <filter-name>f1</filter-name>
    <!-- 过滤器对应的java类 -->
    <filter-class>filter.Filter1</filter-class>
</filter>
<filter-mapping>
    <filter-name>f1</filter-name>
    <!-- 过滤器要过滤的路径 -->
    <url-pattern>/ *</url-pattern>
</filter-mapping>
<!-- 等价于 @WebFilter(urlPatterns="/*") -->

在这个时候的话,就会先让标签mapping在前面的执行

7.过滤器的应用

过滤器可以使用的地方为:
1.如果有重复的代码,可以在进入过滤器的的时候进行设置,减少重复的代码
2.还可以应用于登录时的自动的登录的功能
3.还可以应用于登录的验证的功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值