【Java Web】过滤器

目录

一、过滤器概述

二、过滤器使用

2.1 注解方式配置过滤器

三、过滤器生命周期

四、过滤器链及其执行顺序


一、过滤器概述

过滤器应用在服务器上类似于防火墙,用户的请求和响应报文在转化为HttpServletRequest和HttpServletResponse对象后,都会先经过过滤器(实现filter接口的Java类)进行处理,由过滤器来决定是否放行用户的请求到项目的目标资源,服务端用户请求的响应报文HttpServletResponse对象也需要先经过过滤器后,才能转化为响应报文响应给客户端。

因此,过滤器可以决定是否允许用户的请求到达目标资源,以及对用户的响应信息做处理后在响应给客户端。

过滤器应用场景:

1、日志记录

2、性能分析

3、乱码处理

4、登录控制

5、跨域处理

。。。

二、过滤器使用

使用步骤:

1、实现Filter接口

2、重写doFilter过滤方法

3、配制过滤器,指定要过滤的请求资源

  • 方式一: web.xml
  • 方式二: 注解

代码测试:

2.1 注解方式配置过滤器

三、过滤器生命周期

①实例化过滤器----->项目启动---->调用一次无参构造器(1次)

②执行init方法初始化----->项目启动、构造器执行之后执行一次(1次)

③调用doFilter方法过滤用户请求------>用户每次请求都会自动调用此方法(n次)

④销毁过滤器---->服务关闭------>调用一次destory方法(1次)

代码测试:

四、过滤器链及其执行顺序

用户请求的目标资源在服务端可能有多个过滤器对其请求进行过滤,那么这多个过滤器针对用户的本次请求就形成了一个过滤器链。因此,用户请求的目标资源不同其对应的过滤器链可能也不相同。如下图:

当在服务端有多个过滤器对用户的请求进行过滤时,它们的执行顺序是怎样的呢?

  • web.xml方式:

过滤器<filter-mapping>映射路径标签元素在配置文件中的顺序(自上而下)即为过滤器链的执行顺序。

  • 注解方式:

同包下,过滤器类名的字典顺序即为过滤器链的执行顺序

@声明:“山月润无声”博主知识水平有限,以上文章如有不妥之处,欢迎广大IT爱好者指正,小弟定当虚心受教! 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Orion Guan's 山月润无声

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值