Filter(java过滤器)

1.过滤器简介

  • web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能。
  • 过滤器的作用:一般用于完成通用的操作。如:登陆验证,统一编码处理,敏感字符过滤……
  • 工作原理:只要在web.xml文件配置好要拦截的客户端请求,它就会帮你拦截到请求,此时就可以对请求或响应统一设置编码,简化操作;同时还可以进行逻辑判断,如用户是否已经登录,有没有权限访问该页面等工作。它是随你的web应用启动而启动的,只要初始化一次,以后就可以拦截相关请求,只有当你的web应用停止或重新部署的时候才销毁。

2.快速入门

1)使用过滤器的步骤

  • 定义一个类,实现接口Filter
  • 覆写方法
  • 配置拦截路径   ①web.xml   ②注解

2)代码

@WebFilter("/*")//访问所有资源之前,都会执行该过滤器
public class FilterDemo implements Filter {
    public void destroy() {
    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        chain.doFilter(req, resp);
    }

    public void init(FilterConfig config) throws ServletException {

    }
}

3.过滤器细节

1)web.xml配置

2)过滤器执行流程

  • 执行过滤器
  • 执行放行后的资源
  • 回来执行过滤器放行代码下面的代码

3)过滤器生命周期方法

  • init() :在服务器启动后,会创建Filter对象,然后调用init方法,用于加载资源
  • doFilter() :在每一次请求被拦截时,会执行,可以执行多次。
  • destroy() :在服务器关闭后,Filter对象被销毁,如果服务器是正常关闭,则会执行destroy方法,只会执行一次,用于释放资源。

4)过滤器配置详解

5)过滤器链(配置多个过滤器)

①执行顺序:如何有两个过滤器:过滤器1和过滤器2

  • 过滤器1
  • 过滤器2
  • 资源执行
  • 过滤器2
  • 过滤器1

②过滤器先后顺序问题

  • 注解配置:按照类名的字符串比较规则比较,值小的先执行

                

  • web.xml配置:<filter-mapping>谁定义在上边,谁先执行。 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值