`
勤业思行
  • 浏览: 83797 次
  • 性别: Icon_minigender_1
  • 来自: 贵阳
社区版块
存档分类
最新评论

Filter开发

    博客分类:
  • j2se
阅读更多

Filter:即过滤器。如非法文字的过滤、字符编码过滤和登录验证过滤等是我们在编程过程中经常使用的过滤器,能够使我们的应用程序更人性化。

 

一、Filter的主要功能

1、过滤非法文字。

2、设置统一的字符编码。

3、对用户进行登录验证。

4、改变图片的文件格式。

5、进行压缩处理。

6、对XML的输出使用XSLT来进行转换。

 

二、如何使用Filter

      Filter同Servlet类似,也是一个Java类。所以其添加方式和普通的Java类完全相同。在编程中自定义Filter类,必须实现Filter接口,同时必须实现Filter接口中的init()、doFilter()和destroy()方法。

          init()和destroy()方法分别用于Filter的初始化和销毁。

          doFilter用来实现具体的过滤处理,所有的过滤处理代码都在该方法中。doFilter方法接收三个参数:request、response、chain。request和response用于传递给下一个Filter(如果有多个Filter时)或者JSP和Servlet。chain则通过调用其doFilter方法来调用下一个FIlter,获得调用原始的JSP或Servlet等其他内容。

 

三、Filter示例:下面给出一个自定义的Filter类设计以及Filter的配置(类似Servlet)

1、自定义Filter:MyFilter.java       要求实现Filter接口及其三个方法

 

package filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletResponse;
import javax.serlvet.ServletRequest;

public class MyFilter implements Filter
{
	//实现初始化方法init()
	public void init(FilterConfig filterConfig) throws ServletException{
		System.out.println("Filter初始化!");
	}
	//实现过滤方法doFilter()
	public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException{
	  System.out.println("执行过滤!");
	    //调用下一个Filter或者其他原始内容
	   chain.doFilter(request,response);
	}
	//实现销毁方法destroy
	public void destroy(){
	System.out.println("Filter销毁!");
	}

}

  

2、同Serlvet一样,都需要在配置文件web.xml中进行相关配置,配置类似于Servlet。

 

<filter>
 <filter-name>MyFilter</filter-name>
 <filter-class>filter.MyFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>MyFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

 

   这里url-pattern标记的值为 "/*",说明该过滤器将过滤该Web站点的所有URL。

 

3、Filter的生命周期:

  (1)、重启Web服务器Tomcat后,此时Filter会随着服务器的启动而初始化。

  (2)、然后当在浏览器中打开任意一个JSP页面,这时Filter开始过滤。

  (3)、关闭服务器,Filter进行销毁。

 

  本例中这三个过程分别在Tomcat服务器的控制台上输出:

 

  Filter初始化!

 

  执行过滤!

 

  Filter销毁!

 

 

 

 

 

 

1
2
分享到:
评论

相关推荐

    Filter 开发

    Filter 开发,,,Filter 开发

    最简单的transform filter开发(win10+vs2013)

    在本教程中,我们将深入探讨如何在Windows 10环境下使用Visual Studio 2013开发一个最简单的Transform Filter,即实现视频的上下翻转功能。 首先,我们需要理解DirectShow的基本概念。DirectShow是Microsoft提供的...

    Directshow的filter开发

    Directshow的Filter开发简要步骤-C++技术文章-C++-程序设计-技术资料

    simplest_ffmpeg_video_filter.zip_ffmpeg filter_ffmpeg filter开发_f

    最简单的基于FFmpeg的AVfilter例子(水印叠加)。FFMPEG中有一个类库:libavfilter。该类库提供了各种视音频过滤器。本代码在libavfilter基础上完成了一个水印叠加器。 该代码完成了一个水印叠加的功能。...

    DirectShow Filter的开发实践

    #### 三、DirectShow Filter开发实践 **3.1 滤镜类型** 为了实现特定的功能,需要根据需求选择合适的滤镜类型。例如,若要实现虚拟摄像头功能,则需要编写转换滤镜来处理图像数据并传递给底层驱动程序。 **3.2 ...

    用 Filter 作为控制器的 MVC

    在Java Web开发中,MVC(Model-View-Controller)模式是一种常见的架构设计,用于分离应用程序的业务逻辑、用户界面和数据访问。Struts2框架是实现MVC模式的一个流行选择,它提供了一种优雅的方式来组织和管理应用...

    matlab开发-kalmanfilter

    总的来说,MATLAB中的kalmanfilter开发涉及到理解滤波器的基本原理,设置合适的系统参数,编写或配置MATLAB代码或Simulink模型,并进行性能评估。通过对`studentdave_kalmanfilter_code.m`的分析和实验,可以深入...

    如何新建一个Filter空工程

    在DirectShow领域,Filter是构建媒体处理管道的关键组件。...在DirectShow Filter开发中,理解Filter Graph的工作原理、熟悉COM编程和Windows API调用至关重要。不断实践和学习,你将能够创建出强大的多媒体处理工具。

    ISAPI_Filter.rar_ISAPI_ISAPI Filter

    描述中的 "ISAPI Filter, IIS 插件开发实例源代码" 暗示这个压缩包内可能包含了一些实际的代码示例,用于演示如何开发 ISAPI Filter 插件。开发者可以通过学习这些示例,理解如何在 IIS 上创建自己的服务器扩展,以...

    Filter驱动开发笔记_filter_

    在IT行业中,驱动程序开发是操作系统与硬件之间的重要桥梁,其中Filter驱动开发是特定的一种,主要涉及对系统级驱动的扩展或干预。本篇笔记主要围绕"Filter驱动开发"这一主题,特别是DNIS(Driver for Network ...

    Filter程序开发与应用上机手册

    ### Filter程序开发与应用知识点详解 #### 一、Filter概述 **Filter** 是 Java Web 开发中的一个重要组件,主要用于对用户请求和响应进行预处理和后处理。它可以帮助开发者实现诸如登录验证、权限控制、日志记录等...

    DirectShow Filter

    对于Filter开发人员来说,掌握DirectShow Filter的相关知识至关重要,因为这将直接影响到多媒体应用程序的性能和兼容性。 DirectShow Filter可以被看作是一个个处理单元,它们按照特定的拓扑结构(Filter Graph)...

    Directshow++开发笔记.pdf

    自定义Filter开发 - **熟悉DirectShow基类**:理解DirectShow提供的基础类是开发自定义Filter的前提。 - **Filter设计**:确定Filter的功能定位,如源Filter、变换Filter还是渲染Filter。 - **Pin连接**:设计...

    DSHOW媒体播放器及Filter的学习总结

    此外,"DirectShow Filter开发学习总结.doc"文档可能详细介绍了在开发过程中遇到的问题、解决策略以及最佳实践。这包括如何调试Filter Graph,如何处理各种媒体格式,以及如何优化性能等。 总的来说,掌握...

    最简单的源Filter的编写步骤

    【DirectShow 源Filter开发基础】 在 DirectShow 这个多媒体框架中,源Filter(Source Filter)扮演着提供原始数据的角色,例如从文件、摄像头等设备获取数据。本篇文章将详细阐述创建一个最简单的源Filter的基本...

    ac3filter_1_60b_src

    AC3Filter是一款开源的 Directshow 音频解码插件。ac3filter支持MPEG1/2、AC3、DTS、LPCM格式的音频解码,支持多音轨,SPDIF输出,Dolby ProLogic 解码。

    商业编程-源码-自己写 FILTER 改变画面颜色.zip

    在商业编程领域,自定义FILTER...总的来说,这个源码资源是学习和理解自定义FILTER开发的一个宝贵实例,通过学习,你可以提升在商业编程中应用图像处理技术的能力,从而在各种项目中创造出独特且引人入胜的视觉效果。

    cups-filters-1.20.1 版本

    cups打印过滤器,用来补充cups的过滤器,以支持pdf等文件的打印

    Laravel开发-modelfilter

    总的来说,`Laravel开发-modelfilter`是一个提高代码组织和查询效率的策略,它使你能够更灵活地处理复杂的查询场景,同时保持代码的清晰和整洁。通过实践和理解这个概念,你可以提升Laravel项目的质量和开发效率。在...

    DirectShow开发指南.rar

    4. **Filter开发**:指南可能包括自定义过滤器的编写,涉及COM接口的实现,如`IMediaFilter`、`IPin`和`IBaseFilter`等。 5. **数据流处理**:讲解如何处理音视频数据流,包括编码、解码、格式转换等。这涉及到诸如...

Global site tag (gtag.js) - Google Analytics