Filter的使用

       最近项目中需要对URL进行深度过滤,避免浏览器恶意访问,首先想到的就是过滤器,Filter。在java中处理该类事件最简单的方法无非就是增加一个过滤器。

      关于过滤器的概念以及工作原理这里就不赘述了,主要讲下在写过滤器时需要的步骤,写过滤器之前大家应该了解AOP的概念,我们可以理解为,在我们指定的一些访问操作之前必须要执行的步骤。

     首先过滤器需要实现 java.servlet.Filter接口。

   Filter中有三个方法,init(),doFilter(),destroy();

    --init() 方法用来初始化过滤器,可以在init()方法中获取Filter中的初始化参数。

   --doFilter()方法完成过滤操作。当请求发过来的时候,过滤器将执行doFilter方法。

  --destroy()

Filter对象创建后会驻留在内存,当web应用移除或服务器停止时调用destroy()方法进行销毁。在Web容器卸载 Filter 对象之前被调用。destroy()方法在Filter的生命周期中仅执行一次。通过destroy()方法,可以释放过滤器占用的资源。

 

接下来我们来写一个filter;

 

在实现了Filter之后,我们对init以及doFilter进行处理;

在init()中,我这边初始化了一个key为user.initView的字符串,当我们的web.xml文件中配置了该字符串后,系统会默认帮我们初始化。

doFilter中我们通过request以及response对访问的请求进行处理。

接下来看下web.xml

首先通过<filter>标签初始化我们的 filter, 其中<filter-name>是自定义命名,<filter-class>指定我们创建的filter的全路径(包名+类名);<init-param>为初始化参数,也就是我们init()方法中接收到的参数;其中param-name为key,param-value为value;

然后我们还要通过<filter-mapping>来处理我们需要对哪些请求进行过滤,首先要通过<filter-name>来制定使用哪一个过滤器,然后通过<url-pattern>来指定需要过滤的请求,这样我们的过滤器就大功告成了。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值