1.概念:
Filter 技术是Servlet 2.3 新增加的功能,Servlet2.3是sun公司与2000年10月发布的,Filter能够对Servlet容器的请求和响应对象进行检查和修改。
Filter本身并不产生请求和响应对象,它只能提供过滤作用。在Servlet被调用之前检查Request对象,修改Request Header和Request内容;在Servlet被调用之后检查Response对象,修改Response Header和Response内容。
Filter负责过滤的Web组件可以是Servlet、JSP或者HTML文件。
2.特点:
Filter可以检查和修改ServletRequest和ServletResponse对象
Filter可以被指定和特定的URL关联,只有当客户请求访问该URL时,才会触发过滤器
Filter可以被串联在一起,形成管道效应,协同修改请求和响应对象
3.Filter的适用场合:
登录过滤,编码过滤,URL过滤,加密过滤等。
4.Filter接口的构成:
所有的Filter类都必须实现javax.servlet.Filter接口。这个接口含有3个过滤器类必须实现的方法:
a.init(FilterConfig):
这是Filter的初始化方法,Servlet容器创建Filter实例后将调用这个方法。在这个方法中可以读取web.xml文件中Filter的初始化参数
b.doFilter(ServletRequest,ServletResponse,FilterChain):
这个方法完成实际的过滤操作,当客户请求访问于Filter关联的URL时,Servlet容器将先调用Filter的doFilter方法。FilterChain参数用于访问后续Filters
c.destroy():
Servlet容器在销毁Filter实例前调用该方法,这个方法中可以释放Filter占用的资源
5.配置Filter
<filter>
<filter-name>enconfigFilter</filter-name>
<filter-class>com.filter.EnconfigFilter</filter-class>
<init-param>
<param-name>enconfig</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>enconfigFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这是一个字符编码的过滤器,其中:
filter-name 指定过滤器的名字
filter-class 指定过滤器的类名
init-param 为过滤器实例提供初始化参数,可以有多个
url-pattern 指定和过滤器关联的URL,为”/*”表示所有URL
6.注意事项
a.由于Filter、FilterConfig、FilterChain都是位于javax.servlet包下,并非HTTP包所特有的,所以其中所用到
的请求、响应对象ServletRequest、ServletResponse在使用前都必须先转换成HttpServletRequest、
HttpServletResponse再进行下一步操作。
b.在web.xml中配置Servlet和Servlet过滤器,应该先声明过滤器元素,再声明Servlet元素
分享到:
相关推荐
在Java Servlet API 2.5版本中,包含了对Servlet、Filter、Listener以及WebSocket等关键组件的规范,极大地增强了Web开发的灵活性和可扩展性。 首先,Servlet是Java Servlet API中的核心概念,它是一个实现了javax....
Java Servlet是一种Java技术,用于扩展服务器的功能,特别是在Web应用程序中。Servlet是Java EE(企业版)的一部分,它允许开发者创建动态、交互式的Web服务。Servlet容器,如Tomcat,负责管理和运行Servlet。本指南...
Java Servlet API 2.1是Java Web开发中的一个重要组成部分,它是Java服务器端应用程序与HTTP客户端交互的核心接口。这个API提供了一系列的类和接口,用于构建动态、可扩展的Web应用程序。下面将详细介绍Java Servlet...
Filter是Java Servlet中的一种组件,用于对请求和响应进行过滤和修改。 知识点6:了解UserDao和UserService UserDao和UserService是系统中两个重要的组件。UserDao是负责与数据库交互的组件,用于查询用户信息。...
1. **servlet-api.jar**:这是Java Servlet API的核心库,包含了Servlet接口和Filter接口的定义,以及与之相关的类和接口。它定义了服务器如何与Servlet通信的标准,使得开发者可以编写与服务器无关的Servlet代码。 ...
在Java Servlet API 2.5版本中,包含了对Servlet、Filter、Listener等关键概念的详细描述,以及它们在Web应用程序中的应用方式。 1. **Servlet接口**:Servlet是Java中处理网络请求的基础,它定义了web服务器如何与...
本教程将深入探讨 Java Servlet 的核心概念、工作原理及其在网络编程中的应用。 一、Java Servlet 基础 1.1 Servlet 定义:Servlet 是 Java 类,遵循 javax.servlet.Servlet 接口,用于接收和响应来自客户端(如...
JavaServlet帮助文档中的CHM文件是一个编译过的HTML帮助文档,它包含详细的API参考、教程、示例代码和常见问题解答,是开发者学习和查阅Servlet技术的重要资源。利用其内置的搜索功能,开发者可以快速找到所需的信息...
Java Servlet是Java Web开发中的核心组件之一,它是一种用于扩展Web服务器功能的接口。本教程“深入学习:Java Servlet开发与实例”旨在帮助Java从业者深入理解Servlet技术,并通过实例进行实践,提升开发能力。 ...
在Servlet API中,还包括了过滤器(Filter)的概念,它们允许在请求到达Servlet之前进行预处理,或者在响应离开Servlet之后进行后处理。`javax.servlet.Filter`接口定义了过滤器的核心方法,如`doFilter...
Java Servlet是Java Web开发中的核心组件之一,它主要用于构建动态Web应用程序。Servlet是Java平台上的一个标准接口,由Sun Microsystems(现在是Oracle)定义,允许开发者编写能够接收和响应HTTP请求的服务端程序。...
Java Servlet编程是Web开发中的核心技术,它为Java程序员提供了一种服务器端的编程接口,用于构建动态、交互式的网络应用程序。在"Java Servlet Programming9"这个主题中,我们可以深入探讨以下几个核心知识点: 1....
在深入理解Java Servlet网络编程的过程中,我们需要掌握以下几个关键知识点: 1. **Servlet生命周期**:Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。当服务器启动或者第一次接收到对Servlet的请求时,...
本篇文章将深入探讨Java Servlet在网络编程中的应用及其关键概念。 1. **Servlet生命周期** Java Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。当服务器接收到第一个请求时,Servlet容器(如Tomcat)...
Java WEB 篇九 Java servlet、filter、listener、interceptor 之间的区别和联系?
Java Servlet API是Java Web开发中的核心组件之一,它为服务器端的动态网页处理提供了标准的接口和类。这个API说明文档详细阐述了如何利用Java来构建动态、交互式的Web应用程序。下面将对Java Servlet API的一些关键...
Java Servlet是Java编程语言中用于扩展服务器功能的接口和API,它是Java EE(企业版)平台的核心组成部分,主要用于处理Web应用程序中的HTTP请求。本篇将深入探讨Java Servlet的基础概念、核心组件、工作原理以及...
在深入理解Java Servlet网络编程的过程中,我们需要掌握以下几个关键知识点: 1. **Servlet生命周期**:Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。在web应用启动时,Servlet容器(如Tomcat)会加载...