过滤器 Filter

1、概念

Filter是Servlet规范提供的一个web组件,用来拦截http请求,对所拦截的请求做预处理和后续处理。
如:客户身份验证,客户是否登录的检查。
Filter是一个web组件的话,该 Filter 组件仍然由web容器负责管理调用。

2、开发步骤
Filter开发涉及三个接口,都包含在javax.servlet包中,分 别是Filter 接口、FilterConfig 接口、FilterChain 接口。
Filter接口: Servelt 规范规定定义Filter 组件必须实现该接口。
        init.方法:完成Filter组件的初始化操作。
        doFilter.方法:对请求 做预处理、对响应做后续处理。
        destroy方法: Filter 被销毁时要执行的方法。
FilterConfig接口:该接口的实现类以及实现类对象由web容器负责提供,通过该接口对象可以获取Filter 组件的初
始化配置信息和所在web应用的上下文环境信息。。
FilterChain接口:该接口的实现类以及实现类对象由web容器负责提供,该接口对象用来表示Filter 组件处理完拦
截的请求后,要把请求继续提交的下一个目标资源,该目标资源可能是另外一个Filter 也可能是客户请求的目标资
源,这些都被表示为FilterChain 对象。。
基于Servlet名称-指定要应用过滤器的servlet的名称。
注意:选择的Servelt组件必须配置部署属性name,否则Filter过滤器不起作用。
基于URL一使用精确URL或通配符(*),为”/*”表示所有URL;

注意:Filter拦截请求的两种方式
基于Servlet名称-指定要应用过滤器的servlet的名称。
注意:选择的Servelt组件必须配置部署属性name,否则Filter过滤器不起作用.
基于URL -使用精确URL或通配符(*),为”/*”表示所有URL;
在Filter中拦截路径配置有四种形式

具体资源路径拦截: @WebFilter("/index.jsp") //这是指访问index.jsp的时候会经过过滤器
具体目录拦截: @WebFilter("/user/*") //这是指访问user目录下的所有资源时会经过过滤器
具体后缀名拦截: @WebFilter("*.jsp") //这时指访问后缀名为jsp的资源时会经过过滤器
所有资源拦截: @WebFilter("/*") //这是指访问所有资源的时候都会经过过滤器

在<filter- mapping>元素中有<dispatcher> </dispatcher>子元素,用来设定Filter拦截请求的方式
REQUEST方式(默认) :当客户通过页面直接访问资源时的方式。
INCLUDE方式: request.getRequestDispatcher("/hello.html").include(request, response);~
FORWARD方式: request.getRequestDispatcher("/hello.html").forward(request, response);
ERROR方式:当发生错误导致该请求的访问。。

●Filter是Tomcat容器内的过滤器, 在请求到达容器是先会调用过滤器,再调用我们的servlet或者jsp

Filter过滤器链
●过滤器可以组成一个过滤器链, 链中的每个过滤器都可以负责特定的操作和任务
●客户端访问服务器的请求和响应在这些过滤器链之间传递 
●FilterChain接口用于调用过滤器链中的一 系列过滤器

Filter过滤器的生命周期
●实例化: Web应用程序启动时, Web服务器通过web.xml创建Filter实例
●初始化:调用init()方法初始化Filter实例
●过滤:客户端提交请求或Web服务器发送响应时,调用doFilter()方法
●销毁:停止Web服务器时由容器调用过滤器的destroy()方法销毁实例
../ 跳上一级目录(适用所有目录包括图片)

Filter过滤器的应用
●敏感词过滤
●对请求的数据进行敏感词汇过滤
●过滤敏感词替换为*
●登录验证
●访问资源,验证是否已经登录
●如果已登录就直接放行
●如果未登录就跳转到登录页面

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值