第12章 Filter详解-【千锋教育】Java Web开发实战
2023-03-21
|
37页
|
112人阅读
|
0人下载
教辅
内容正文:
第12章 Filter详解
Filter概述
Filter开发
Filter的链式调用
Filter的应用
Filter概述
Filter开发
☞点击查看本小节知识架构
Filter的链式调用
12.2
12.3
12.1
Filter的应用
12.4
☞点击查看本小节知识架构
☞点击查看本小节知识架构
理解
掌握
掌握
掌握
理解Filter的概念
1
掌握Filter常用的API的使用
4
2
掌握Filter的工作原理
3
掌握Filter的创建及配置
学习目标
销售额 掌握知识 理解知识 熟悉知识 了解知识 2.5 2.5 2.5 2.5
12.1 Filter概述
12.1.1
Filter简介
返回目录
12.1.2
Filter相关API
12.1.3
Filter的生命周期
12.1 Filter概述
12.1.1 Filter简介
Filter被称作过滤器,当用户访问Web资源时,它能够对服务器调用Web资源的过程进行拦截,从而实现一些特定的功能,比如设置字符编码、敏感词过滤等。
一个Filter就是一个运行在服务器中的特殊Java类,当用户的请求到达目标Web资源之前,Filter可以检查ServletRequest对象,修改请求头和请求正文的内容,或者对请求进行预处理。当执行结果响应到客户端之前,Filter可以检查ServletResponse对象,修改响应头和响应正文。Filter的拦截过程如图所示。
图中展示了Filter的拦截过程,具体来讲,Filter的拦截过程可进一步细分为如下几个步骤。
12.1 Filter概述
12.1.1 Filter简介
(1)当客户端发送请求时,服务器判断请求的资源是否匹配有相应的过滤器,如果有,服务器将请求交给过滤器处理。
(2)过滤器可以修改请求信息或对请求进行预处理,然后将请求直接返回或转发给目标资源。
(3)如果请求被转发给目标资源,则由目标资源对请求进行处理后做出响应。
(4)响应被转发给过滤器。
(5)过滤器可根据业务需要对响应的内容进行修改。
(6)服务器将响应内容发送给客户端。
12.1 Filter概述
12.1.1 Filter简介
在Web开发中,不同的Web资源中的相同操作可以放到同一个Filter中来完成,当这些Web资源被访问时,对应的Filter会帮助它们实现重复的功能。这样一来,相关Web资源中的重复代码减少,程序的性能提高。
12.1 Filter概述
12.1.2 Filter相关API
1. Filter接口
Filter接口位于javax.servlet包中,它定义了服务器与Filter程序交互时遵循的协议。所有Filter类必须先实现Filter接口,然后才能被服务器识别,进而实现过滤器的功能。Filter接口共提供了三种方法,具体如表所示。
在实际开发中,一般通过实现Filter接口的形式编写Filter程序。
12.1 Filter概述
12.1.2 Filter相关API
2. FilterConfig接口
FilterConfig接口用于封装Filter程序的配置信息,在Filter初始化时,服务器将FilterConfig对象作为参数传给Filter对象的初始化方法。
FilterConfig接口共提供了四种方法,具体如表所示。
12.1 Filter概述
12.1.2 Filter相关API
3. FilterChain接口
FilterChain接口主要用于调用过滤器链中的下一个过滤器,如果当前过滤器是过滤器链中的最后一个,那么就直接调用目标资源。
FilterChain接口只有1个方法,具体如下所示。
在实际应用中,FilterChain对象被作为参数传给Filter对象的doFilter()方法,如有需要,直接在doFilter()方法体中调用即可。
12.1 Filter概述
12.1.3 Filter的生命周期
Filter的生命周期,是指一个Filter对象从创建到执行拦截再到销毁的过程。与Servlet类似,Filter也是通过其接口中定义的方法来实现这一过程。
1. 初始化阶段
Filter的初始化阶段分为如下两个步骤。
1)创建Filter对象
服务器在启动时,它会根据web.xml中声明的Filter顺序依次生成Filter对象。
2)执行init()方法
创建Filter对象之后,服务器将调用init()方法对Filter对象进行初始化。在这个过程中,Filter对象使用服务器为其提供的FilterConfig对象,从web.xml文件中获取初始化的参数。在Filter的整个生命周期内,init()方法只被执行一次。
12.1 Filter概述
12.1.3 Filte
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。