一、Filter过滤器
1.什么是Filter
Filter被称为过滤器,其基本功能就是对Servlet容器调用Servlet的过程进行拦截,从而在Servlet进行相应处理实现一些特殊功能。
当浏览器访问服务器中的目标资源时,会被Filter拦截,在Filter中进行预处理操作,然后再将请求转发给目标资源。当服务器接收到这个请求后会对其进行响应,在服务器处理响应过程中,也需要先将响应结果发送给过滤器,在过滤器中对响应结果进行处理后,才会发送给客户端。
2.实现第一个Filter程序
设置过滤器对MyServlet请求资源进行拦截,将在请求到达MyServlet程序前执行MyFilter程序。过滤器的配置信息中包含多个元素,这些元素分别具有不同的作用,具体如下:
(1)根元素用于注册一个Filter
(2)子元素用于设置Filter名称
(3)子元素用于设置Filter类的完整名称
(4)根元素用于设置一个过滤器所拦截的资源
(5)子元素必须与中的子元素相同
(6)子元素用于匹配用户请求URL
3.Filter映射
(1)使用通配符“*”拦截用户所有请求
(2)拦截不同方式的访问请求
1)REQUEST
当用户直接访问页面时,Web容器将会调用过滤器
2)INCLUDE
如果目标资源是通过RequestDispatcher的include()方法访问,那么该过滤器将会被调用
3)FORWARD
如果目标资源是通过RequestDispatcher的feoward()方法访问,那么该过滤器将会被调用
4)ERROR
如果目标资源是通过声明式异常处理机制调用的,那么该过滤器将被调用。除此之外,过滤器不会被调用
4.Filter链
在一个Web应用程序中可以注册多个Filter程序,每个Filter程序都可以针对某一个URL进行拦截。如果多个Filter程序都对同一个URL进行拦截,那么这些Filter就会组成一个Filter链。Filter链用FilterChain对象表示,FilterChain对象中有一个doFilter()方法,该方法的作用就是让Filter链上的当前过滤放行,使请求进入下一个Filter。
当浏览器访问Web服务器中的资源时需要经过两个过滤器Filter1和Filter2。
5.FilterConfig接口
二、使用Filter实现用户自动登录
(1)编写User类
(2)实现登录页面和首页
(3)创建Servlet
1)编写LoginServlet类
2)编写LogoutServlet类
(4)创建过滤器
(5)配置映射信息
三、使用Filter实现统一全站编码
(1)编写form.jsp页面
(2)创建Servlet
(3)创建过滤器
(4)配置映射信息
四、Listener监听器----Servlet事件监听器概述
监听器在监听的过程中涉及的组成部分:
(1)事件(Event):用户的一个操作,如单击一个按钮、调用一个方法、创建一个对象
(2)事件源:产生事件的对象
(3)事件监听器(Listener):负责监听发生在事件源上的事件。
(4)事件处理器:监听器的成员方法,当事件方式的时候会触发对应的处理器。
事件监听在进行工作时,可以分为以下几个步骤:
(1)将监听器绑定到事件源,也就是注册监听器
(2)事件方式时会触发监听器的成员方法,即事件处理器,传递事件对象
(3)事件处理器通过事件对象获得事件源,并对事件源进行处理。
监听器分类:
(1)用于监听域对象创建和销毁的事件监听器(ServletContextListener接口、HttpSessionListener接口、ServletRequestListener接口)
(2)用于监听域对象属性增加和删除的事件监听器
(3)用于监听绑定到HttpSession域中某个对象状态的事件监听器
五、监听域对象的生命周期
六、监听域对象的属性变更
Servlet高级
最新推荐文章于 2022-01-08 18:41:37 发布