JAVA WEB 中Servlet过滤器的使用

来源:互联网 发布:三观尽毁的淘宝评论 编辑:程序博客网 时间:2024/05/16 05:53


JAVA WEB 

Servlet

过滤器的使用

 

JAVA

 2008-08-07 17:39:00 

阅读

175 

评论

  

字号:大中小

 

订阅

 

 

一、

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 

评论

  

字号:大中小

 

订阅

 

 

一、

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”/>


0 0