java当中的Filer过滤器

1.过滤器的使用

1.1过滤器的接口

过滤器有三大接口

1.init是在初始化阶段
2.doFiler是拦截和过滤阶段
3.销毁阶段

总结:一般进行过滤器处理的时候,大部分时间只要在doFiler当中写逻辑就可以
1.2使用注解进行配置

使用注解进行配置,需要使用@WebFiler

常用的配置项

filterName

该filter的名字

initParams初始化参数
displayNamefilter显示名称
servletNames指定对哪些servlet进行过滤
asyncSupported是否支持异步模式
urlPatterns指定拦截路径
value指定拦截路径
注意:urlPatterns和value是一样的。urlPatterns和value只能配置一个,不能两个都配置,两个都配置就会报错。

2.FilerConfig和FilerChain的使用

2.1 FilerConfig是init当中的一个参数,

getFilterName()

获取filter的名称

getServletContext()获取ServletContext
getInitparamter(String var1)获取配置的初始参数的值
getInitParamterNames()获取配置的所有参数名称

2.2 FilerChain是doFiler当中的一个参数

这个方法是用来对拦截进行放行的

注意:如果有多个拦截,它们的执行顺序是按照字符顺序来执行。例如有2个过滤器,一个是AFilter,一个是BFilter,那么AFilter就会先执行。(注解方式)
如果我们是在web.xml中配置的过滤器,那么过滤器的执行顺序就是<filter-mapping>在web配置的顺序,配置在上面那么就会先执行。

3.更加详细的请看这个:详细介绍Filer
下面将是独家见解 :

过滤器与重定向和请求转发的那些事

在进行过滤的时候,如果是对网页进行请求转发,那么这个网页会经过过滤器,如果是重定向跳转,那么这个网页就不会经过过滤器,会直接进入到网页当中(在做实验的时候需要注意缓存问题)
处理:dispatcherTypes={DispatcherType.REQUEST,Dispatcher.FORWARD},在@WebFilter注解当中加上这个就可以使得,请求转发的网页不能直接跳转,要经过过滤器


文件过滤

当我想要一个admin目录下面的文件进行过滤的时候可以使用@WebFiler(urlPatterns="/admin/*")这样就可以对admin目录下面的文件进行过滤,但是这时我还想要对应该名称叫HelloServlet的Java程序进行过滤,有如下的方法进行过滤
1.@WebFiler(urlPatterns={"/admin/*","/HelloServlet"})//这样是对admin目录下面的文件和HelloServlet进行过滤

2.@WebFiler(urlPatterns="/*")//这个是对所有的文件进行过滤
3.HelloServlet文件@WebServlet("/HelloServlet")原本是这样,我们将@WebServlet("/admin/HelloServlet")改为这样就也可以对HelloServlet进行过滤了,同时admin目录下面的文件也可以进行过滤。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值