1.过滤器简介
过滤器也叫作Filter,,和Servlet、监听器(Listener)统称为JavaWeb的三大组件
过滤器主要作用是对用户发送的请求进行拦截处理
Servlet主要作用是接收用户的请求,最后做出处理
监听器的主要作用是对某一个对象的属性状态等信息进行监听
过滤器也叫作Filter,通过过滤器可以实现在用户访问某个资源之前或者之后,将发送的请求和响应拦截下来,进行相关的处理。
Servlet API 中提供了一个Filter接口,开发web应用时,如果编写了一个类,实现了这个接口,则这个类就是过滤器
总结:
(1)所谓的过滤器,就是将用户对资源的访问进行拦截
(2)一个过滤器可以配置拦截多个资源,一个资源也可以配置多个过滤器进行拦截
(3)其实所谓的拦截,就是将代表请求的request对象和代表响应的response对象拦截下来,从而做一些相关的处理
比如:在判断用户是否登录,才允许访问购物车或者订单
2. 过滤器中的方法
2.1 init方法: 在Filter实例创建之后立即执行,进行初始化的操作
在服务器启动,web应用被加载之后立即创建出当前web应用内的所有的过滤器实例
2.2 destroy 方法 在Filter 实例销毁之前执行,进行善后的处理
在服务器关闭或者web应用被移除容器是,随着web应用的销毁,所有的过滤器实例也会跟着销毁
2.3 doFile() 方法 在过滤器拦截到请求后,会立即调用这个方法来处理
request 表示请求的对象
response 表示响应的对象
这里的request、response对象需要向下转成HttpServleRequest、httpServletResponse,在这里向下转成功的原因为:在tomcat内部创建的这个request它就是httpservletrequest接口的子类。
FilterChain 表示过滤器链的对象,作用是用来放行过滤器
chain.doFilter(req,res)