`
lapulande
  • 浏览: 219743 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java Servlet中的Filter

阅读更多

      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

    在Java Servlet API 2.5版本中,包含了对Servlet、Filter、Listener以及WebSocket等关键组件的规范,极大地增强了Web开发的灵活性和可扩展性。 首先,Servlet是Java Servlet API中的核心概念,它是一个实现了javax....

    JAVA servlet 编程指南

    Java Servlet是一种Java技术,用于扩展服务器的功能,特别是在Web应用程序中。Servlet是Java EE(企业版)的一部分,它允许开发者创建动态、交互式的Web服务。Servlet容器,如Tomcat,负责管理和运行Servlet。本指南...

    Java Servlet API2.1中文文档

    Java Servlet API 2.1是Java Web开发中的一个重要组成部分,它是Java服务器端应用程序与HTTP客户端交互的核心接口。这个API提供了一系列的类和接口,用于构建动态、可扩展的Web应用程序。下面将详细介绍Java Servlet...

    使用Java servlet实现自动登录退出功能

    Filter是Java Servlet中的一种组件,用于对请求和响应进行过滤和修改。 知识点6:了解UserDao和UserService UserDao和UserService是系统中两个重要的组件。UserDao是负责与数据库交互的组件,用于查询用户信息。...

    java servlet jar包

    1. **servlet-api.jar**:这是Java Servlet API的核心库,包含了Servlet接口和Filter接口的定义,以及与之相关的类和接口。它定义了服务器如何与Servlet通信的标准,使得开发者可以编写与服务器无关的Servlet代码。 ...

    Java Servlet Api文档

    在Java Servlet API 2.5版本中,包含了对Servlet、Filter、Listener等关键概念的详细描述,以及它们在Web应用程序中的应用方式。 1. **Servlet接口**:Servlet是Java中处理网络请求的基础,它定义了web服务器如何与...

    深入 Java Servlet 网络编程

    本教程将深入探讨 Java Servlet 的核心概念、工作原理及其在网络编程中的应用。 一、Java Servlet 基础 1.1 Servlet 定义:Servlet 是 Java 类,遵循 javax.servlet.Servlet 接口,用于接收和响应来自客户端(如...

    JavaServlet帮助文档

    JavaServlet帮助文档中的CHM文件是一个编译过的HTML帮助文档,它包含详细的API参考、教程、示例代码和常见问题解答,是开发者学习和查阅Servlet技术的重要资源。利用其内置的搜索功能,开发者可以快速找到所需的信息...

    深入学习:Java Servlet开发与实例

    Java Servlet是Java Web开发中的核心组件之一,它是一种用于扩展Web服务器功能的接口。本教程“深入学习:Java Servlet开发与实例”旨在帮助Java从业者深入理解Servlet技术,并通过实例进行实践,提升开发能力。 ...

    JAVA SERVLET帮助文档(API)

    在Servlet API中,还包括了过滤器(Filter)的概念,它们允许在请求到达Servlet之前进行预处理,或者在响应离开Servlet之后进行后处理。`javax.servlet.Filter`接口定义了过滤器的核心方法,如`doFilter...

    深入Java Servlet网络编程

    Java Servlet是Java Web开发中的核心组件之一,它主要用于构建动态Web应用程序。Servlet是Java平台上的一个标准接口,由Sun Microsystems(现在是Oracle)定义,允许开发者编写能够接收和响应HTTP请求的服务端程序。...

    Java Servlet Programming9

    Java Servlet编程是Web开发中的核心技术,它为Java程序员提供了一种服务器端的编程接口,用于构建动态、交互式的网络应用程序。在"Java Servlet Programming9"这个主题中,我们可以深入探讨以下几个核心知识点: 1....

    深入Java Servlet 网络编程

    在深入理解Java Servlet网络编程的过程中,我们需要掌握以下几个关键知识点: 1. **Servlet生命周期**:Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。当服务器启动或者第一次接收到对Servlet的请求时,...

    深入java servlet 网络编程

    本篇文章将深入探讨Java Servlet在网络编程中的应用及其关键概念。 1. **Servlet生命周期** Java Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。当服务器接收到第一个请求时,Servlet容器(如Tomcat)...

    Java WEB 篇九 Java servlet、filter、listener、interceptor ?.xmind

    Java WEB 篇九 Java servlet、filter、listener、interceptor 之间的区别和联系?

    Java Servlet API说明文档

    Java Servlet API是Java Web开发中的核心组件之一,它为服务器端的动态网页处理提供了标准的接口和类。这个API说明文档详细阐述了如何利用Java来构建动态、交互式的Web应用程序。下面将对Java Servlet API的一些关键...

    Java Servlet

    Java Servlet是Java编程语言中用于扩展服务器功能的接口和API,它是Java EE(企业版)平台的核心组成部分,主要用于处理Web应用程序中的HTTP请求。本篇将深入探讨Java Servlet的基础概念、核心组件、工作原理以及...

    深入java servlet网络编程.rar

    在深入理解Java Servlet网络编程的过程中,我们需要掌握以下几个关键知识点: 1. **Servlet生命周期**:Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。在web应用启动时,Servlet容器(如Tomcat)会加载...

Global site tag (gtag.js) - Google Analytics