- 5
- 0
- 约2.29万字
- 约 22页
- 2016-08-18 发布于河南
- 举报
Servlet过滤器简介
14.1 Servlet过滤器简介? 很早之前,Servlet?API就已成为企业应用开发的重要工具。现在,Servlet中的过滤器和监听器功能则是对J2EE体系的一个补充。过滤器使得Servlet开发者能够在请求到达Servlet之前截取请求,在Servlet处理请求之后修改应答;而Servlet监听器可以监听客户端的请求、服务端的操作,通过监听器,可以自动激发一些操作,如监听应用的启动和停止等。本章将接着介绍Servlet过滤器和监听器的相关知识以及在实际开发中如何使用这些技术。
本章重点:
??● Servlet过滤器简介
??● Servlet过滤器的实现
??● Servlet过滤文本信息
??● Servlet监听器简介
14.1? Servlet过滤器简介
Servlet过滤器是小型的Web组件,能拦截请求和响应,以便查看、提取或以某种方式操作正在客户机和服务器之间交换的数据。过滤器是封装了一些功能的Web组件,这些功能虽然很重要,但是对于处理客户机请求或发送响应来说不是决定性的。典型的例子包括记录关于请求和响应的数据、处理安全协议、管理会话属性等。
一个过滤器可以被关联到任意多个资源,一个资源也可以关联到任意多个过滤器。例如,在图14.1中就有如下的关联关系。
??● F1同时被关联到S1、S2、S3。
??● F1、F2、F3都和S2关联。
图14.1? Web资源与过滤器相关联
关联到同一个资源的过滤器形成一个过滤器链。例如,对S2进行访问时,F1、F2、F3就形成了一个过滤器链,客户要访问资源S2,就要经过F1过滤器,然后是F2、F3,最后才是要访问的资源。如果在经过上面这3个过滤器时出现了错误或者被禁止访问,客户的请求就无法到达资源S2。在Servlet过滤器中,这个过滤器传递的过程是通过FilterChain.dofilter()方法实现的,当过滤器链到达末尾时,这个方法调用请求的资源。建立一个过滤器,一般需要下面4个步骤:
(1)建立一个实现Filter接口的类。这个类需要3个方法,即doFilter、init和destroy。doFilter方法包含主要的过滤代码(见第(2)步),在init方法中进行一些初始化的设置,而destroy方法进行清除过滤器占用的资源。
(2)在doFilter方法中放入过滤行为。doFilter方法的第一个参数为ServletRequest对象,为过滤器提供了对进入的信息(包括表单数据、cookie和HTTP请求头)的完全访问。第二个参数为ServletResponse,通常在简单的过滤器中忽略此参数。最后一个参数为FilterChain,用来调用过滤器链中下一个过滤器或者在到达过滤器末尾时调用Servlet或JSP页。
(3)调用FilterChain对象的doFilter方法。Filter接口的doFilter方法将一个FilterChain对象作为它的一个参数。在调用此对象的doFilter方法时,激活下一个相关的过滤器。如果没有另一个过滤器与Servlet或JSP页面关联,则Servlet或JSP页面被激活。
(4)对相应的Servlet和JSP页面注册过滤器。在部署描述符文件(web.xml)中使用filter和filter-mapping元素对需要进行过滤的资源进行配置。
14.2? 实现一个Servlet过滤器
Servlet过滤器API包含3个简单的接口,即Filter、FilterChain和FilterConfig,它们位于javax.servlet包中。从编程的角度看,过滤器类将实现Filter接口,然后使用这个过滤器类中的FilterChain和FilterConfig接口。该过滤器类的一个引用将传递给FilterChain对象,以允许过滤器将控制权传递给过滤器链中的下一个过滤器或者资源。FilterConfig对象将由容器提供给过滤器,以允许访问该过滤器的初始化数据。
14.2.1? 编写实现类的程序
下面是一个简单的Servlet过滤器的例子,其中将获取一个Web服务器给客户提供服务需要的时间,也就是响应时间。
【本节示例参考:资料光盘\源代码\第14章\14-2\Servlet.java】
【实例14-1】这是一个实现类的程序,主要是使用过滤器处理请求,在处理时可能要耗费很多??? 时间。
程序14-1? Servlet.java
01? package cn.ac.ict.Filter;
02? import java.io.IOException;
03? import java.io.PrintWriter;
04? import java.io.StringWriter;
05? import java.util.Date;
您可能关注的文档
最近下载
- 2026年赣州职业技术学院高职单招职业适应性考试参考题库及答案解析.docx VIP
- 2025年安徽滁州市市直事业单位招聘78人笔试高频难、易错点备考题库及参考答案详解.docx VIP
- Unit 1 Lesson 2 Our trip plan 教案-新冀教(2024)七下.docx VIP
- 中国财政史续.pptx VIP
- 销售团队预算管理培训.pptx VIP
- 油田开发动态分析.pdf VIP
- 《步进电机驱动器》ppt教学课件模板.ppt VIP
- ASTM D7252-22 Standard Test Method for Polyurethane Raw Materials:Determination of Monomer and Isomers in Isocyanates 聚氨酯原材料的标准试验方法: 异氰酸酯中单体和异构体的测定.pdf
- 2025年安徽滁州市市直事业单位招聘78人笔试备考题库及参考答案详解.docx VIP
- 2026年赣州职业技术学院高职单招职业适应性考试备考试题及答案解析.docx VIP
原创力文档

文档评论(0)