JAVA WEB
中
Servlet
过滤器的使用
JAVA
2008-08-07 17:39:00
阅读
175
评论
0
字号:大中小
订阅
一、
Servlet
过滤器的概念:
Servlet
过滤器是在
Java Servlet
规范
2.3
中定义的,它能够对
Servlet
容器的请求和响应对象进行检查和
修改。
Servlet
过滤器本身并不产生请求和响应对象,它只能提供过滤作用。
Servlet
过期能够在
Servlet
被调用之
前检查
Request
对象,修改
Request Header
和
Request
内容;在
Servlet
被调用之后检查
Response
对
象,修改
Response Header
和
Response
内容。
Servlet
过期负责过滤的
Web
组件可以是
Servlet
、
JSP
或者
HTML
文件。
二、
Servlet
过滤器的特点:
A
.
Servlet
过滤器可以检查和修改
ServletRequest
和
ServletResponse
对象
B
.
Servlet
过滤器可以被指定和特定的
URL
关联,只有当客户请求访问该
URL
时,才会触发过滤器
C
.
Servlet
过滤器可以被串联在一起,形成管道效应,协同修改请求和响应对象
三、
Servlet
过滤器的作用:
A
.查询请求并作出相应的行动。
B
.阻塞请求
-
响应对,使其不能进一步传递。
C
.修改请求的头部和数据。用户可以提供自定义的请求。
D
.修改响应的头部和数据。用户可以通过提供定制的响应版本实现。
E
.与外部资源进行交互。
四、
Servlet
过滤器的适用场合:
A
.认证过滤
B
.登录和审核过滤
C
.图像转换过滤
D
.数据压缩过滤
E
.加密过滤
F
.令牌过滤
G
.资源访问触发事件过滤
H
.
XSL/T
过滤
I
.
Mime-type
过滤
五、
Servlet
过滤器接口的构成:
所有的
Servlet
过滤器类都必须实现
javax.servlet.Filter
接口
。
这个接口含有
3
个过滤器类必须实现的方法
:
A.init(FilterConfig)
:
这是
Servlet
过滤器的初始化方法,
Servlet
容器创建
Servlet
过滤器实例后将调用这个方法。在这个方法中
可以读取
web.xml
文件中
Servlet
过滤器的初始化参数
B.doFilter(ServletRequest,ServletResponse,FilterChain)
:
这个方法完成实际的过滤操作,当客户请求访问于过滤器关联的
URL
时,
Servlet
容器将先调用过滤器的
doFilter
方法。
FilterChain
参数用于访问后续过滤器
C.destroy()
:
Servlet
容器在销毁过滤器实例前调用该方法,这个方法中可以释放
Servlet
过滤器占用的资源
六、
Servlet
过滤器的创建步骤:
A
.实现
javax.servlet.Filter
接口
B
.实现
init
方法,读取过滤器的初始化函数
C
.实现
doFilter
方法,完成对请求或过滤的响应
D
.调用
FilterChain
接口对象的
doFilter
方法,向后续的过滤器传递请求或响应
E
.销毁过滤器
七、
Servlet
过滤器对请求的过滤:
A
.
Servlet
容器创建一个过滤器实例
B
.过滤器实例调用
init
方法,读取过滤器的初始化参数
C
.过滤器实例调用
doFilter
方法,根据初始化参数的值判断该请求是否合法
D
.如果该请求不合法则阻塞该请求
E
.如果该请求合法则调用
chain.doFilter
方法将该请求向后续传递
八、
Servlet
过滤器对响应的过滤:
A
.过滤器截获客户端的请求
B
.重新封装
ServletResponse
,在封装后的
ServletResponse
中提供用户自定义的输出流
C
.将请求向后续传递
D
.
Web
组件产生响应
E
.从封装后的
ServletResponse
中获取用户自定义的输出流
F
.将响应内容通过用户自定义的输出流写入到缓冲流中
G
.在缓冲流中修改响应的内容后清空缓冲流,输出响应内容
九、
Servlet
过滤器的发布:
A
.发布
Servlet
过滤器时,必须在
web.xml
文件中加入
<filter>
元素和
<filter-mapping>
元素。
B
.
<filter>
元素用来定义一个过滤器:
属性
含义
filter-name
指定过滤器的名字
filter-class
指定过滤器的类名
init-param
为过滤器实例提供初始化参数,可以有多个
C
.
<filter-mapping>
元素用于将过滤器和
URL
关联:
属性
含义
filter-name
指定过滤器的名字
url-pattern
指定和过滤器关联的
URL
,为
”/*”
表示所有
URL
十一、
Servlet
过滤器使用的注意事项
A
.由于
Filter
、
FilterConfig
、
FilterChain
都是位于
javax.servlet
包下,并非
HTTP
包所特有的,所以其中
所用到的请求、响应对象
ServletRequest
、
ServletResponse
在使用前都必须先转换成
HttpServletRequest
、
HttpServletResponse
再进行下一步操作。
B
.在
web.xml
中配置
Servlet
和
Servlet
过滤器,应该先声明过滤器元素,再声明
Servlet
元素
C
.如果要在
Servlet
中观察过滤器生成的日志,应该确保在
server.xml
的
localhost
对应的
<host>
元素中
配置如下
<logger>
元素:
<Logger className =
“org.apache.catalina.logger.FileLogger”
directory =
“logs”pr
efix =
“localhost_log.”suffix=”.txt”
timestamp =
“true”/>
JAVA WEB
中
Servlet
过滤器的使用
JAVA
2008-08-07 17:39:00
阅读
175
评论
0
字号:大中小
订阅
一、
Servlet
过滤器的概念:
Servlet
过滤器是在
Java Servlet
规范
2.3
中定义的,它能够对
Servlet
容器的请求和响应对象进行检查和
修改。
Servlet
过滤器本身并不产生请求和响应对象,它只能提供过滤作用。
Servlet
过期能够在
Servlet
被调用之
前检查
Request
对象,修改
Request Header
和
Request
内容;在
Servlet
被调用之后检查
Response
对
象,修改
Response Header
和
Response
内容。
Servlet
过期负责过滤的
Web
组件可以是
Servlet
、
JSP
或者
HTML
文件。
二、
Servlet
过滤器的特点:
A
.
Servlet
过滤器可以检查和修改
ServletRequest
和
ServletResponse
对象
B
.
Servlet
过滤器可以被指定和特定的
URL
关联,只有当客户请求访问该
URL
时,才会触发过滤器
C
.
Servlet
过滤器可以被串联在一起,形成管道效应,协同修改请求和响应对象
三、
Servlet
过滤器的作用:
A
.查询请求并作出相应的行动。
B
.阻塞请求
-
响应对,使其不能进一步传递。
C
.修改请求的头部和数据。用户可以提供自定义的请求。
D
.修改响应的头部和数据。用户可以通过提供定制的响应版本实现。
E
.与外部资源进行交互。
四、
Servlet
过滤器的适用场合:
A
.认证过滤
B
.登录和审核过滤
C
.图像转换过滤
D
.数据压缩过滤
E
.加密过滤
F
.令牌过滤
G
.资源访问触发事件过滤
H
.
XSL/T
过滤
I
.
Mime-type
过滤
五、
Servlet
过滤器接口的构成:
所有的
Servlet
过滤器类都必须实现
javax.servlet.Filter
接口
。
这个接口含有
3
个过滤器类必须实现的方法
:
A.init(FilterConfig)
:
这是
Servlet
过滤器的初始化方法,
Servlet
容器创建
Servlet
过滤器实例后将调用这个方法。在这个方法中
可以读取
web.xml
文件中
Servlet
过滤器的初始化参数
B.doFilter(ServletRequest,ServletResponse,FilterChain)
:
这个方法完成实际的过滤操作,当客户请求访问于过滤器关联的
URL
时,
Servlet
容器将先调用过滤器的
doFilter
方法。
FilterChain
参数用于访问后续过滤器
C.destroy()
:
Servlet
容器在销毁过滤器实例前调用该方法,这个方法中可以释放
Servlet
过滤器占用的资源
六、
Servlet
过滤器的创建步骤:
A
.实现
javax.servlet.Filter
接口
B
.实现
init
方法,读取过滤器的初始化函数
C
.实现
doFilter
方法,完成对请求或过滤的响应
D
.调用
FilterChain
接口对象的
doFilter
方法,向后续的过滤器传递请求或响应
E
.销毁过滤器
七、
Servlet
过滤器对请求的过滤:
A
.
Servlet
容器创建一个过滤器实例
B
.过滤器实例调用
init
方法,读取过滤器的初始化参数
C
.过滤器实例调用
doFilter
方法,根据初始化参数的值判断该请求是否合法
D
.如果该请求不合法则阻塞该请求
E
.如果该请求合法则调用
chain.doFilter
方法将该请求向后续传递
八、
Servlet
过滤器对响应的过滤:
A
.过滤器截获客户端的请求
B
.重新封装
ServletResponse
,在封装后的
ServletResponse
中提供用户自定义的输出流
C
.将请求向后续传递
D
.
Web
组件产生响应
E
.从封装后的
ServletResponse
中获取用户自定义的输出流
F
.将响应内容通过用户自定义的输出流写入到缓冲流中
G
.在缓冲流中修改响应的内容后清空缓冲流,输出响应内容
九、
Servlet
过滤器的发布:
A
.发布
Servlet
过滤器时,必须在
web.xml
文件中加入
<filter>
元素和
<filter-mapping>
元素。
B
.
<filter>
元素用来定义一个过滤器:
属性
含义
filter-name
指定过滤器的名字
filter-class
指定过滤器的类名
init-param
为过滤器实例提供初始化参数,可以有多个
C
.
<filter-mapping>
元素用于将过滤器和
URL
关联:
属性
含义
filter-name
指定过滤器的名字
url-pattern
指定和过滤器关联的
URL
,为
”/*”
表示所有
URL
十一、
Servlet
过滤器使用的注意事项
A
.由于
Filter
、
FilterConfig
、
FilterChain
都是位于
javax.servlet
包下,并非
HTTP
包所特有的,所以其中
所用到的请求、响应对象
ServletRequest
、
ServletResponse
在使用前都必须先转换成
HttpServletRequest
、
HttpServletResponse
再进行下一步操作。
B
.在
web.xml
中配置
Servlet
和
Servlet
过滤器,应该先声明过滤器元素,再声明
Servlet
元素
C
.如果要在
Servlet
中观察过滤器生成的日志,应该确保在
server.xml
的
localhost
对应的
<host>
元素中
配置如下
<logger>
元素:
<Logger className =
“org.apache.catalina.logger.FileLogger”
directory =
“logs”pr
efix =
“localhost_log.”suffix=”.txt”
timestamp =
“true”/>