`

java Servlet 过滤器 浅析

阅读更多
1.Servlet 过滤器基础
  定义:它能够对Servlet容器的请求和响应对象进行检查和修改。其本身不产生请求和响应对象,只提供过滤的功能。在Servlet被调用之前检查Request对象,修改Request Header和Request内容;在Servlet被调用之后检查Response对象,修改Response Header和Response内容。

  Servlet 过滤器是Servlet的一种特殊用法,主要用来完成一些通用的操作。比如编码的顾虑,判断用户的登录状态。过滤器适用场合:
    认证过滤
    登录和审核过滤
    图像转换过滤
    数据压缩过滤
    加密过滤
    令牌过滤
    资源访问触发事件过滤
    XSL/T过滤
    Mime-type过滤
2.Servlet过滤器接口的构成:
  所有的Servlet过滤器类都必须实现javax.servlet.Filter接口。这个接口含有3个过滤器类必须实  现的方法:
 
  (1)init(FilterConfig cfg) 这是Servlet过滤器的初始化方法,性质等同与servlet的init方法。
  (2)doFilter(ServletRequest,ServletResponse,FilterChain) 完成实际的过滤操作,当请求访问过滤器关联的URL时,Servlet容器将先调用过滤器的doFilter方法。FilterChain参数用于访问后续过滤器
  (3)destroy() Servlet容器在销毁过滤器实例前调用该方法,这个方法中可以释放Servlet过滤器占用的资源。性质等同与servlet的destory()方法。  

3.Servlet过滤器的创建步骤:
(1)实现javax.servlet.Filter接口的servlet类
(2)实现init方法,读取过滤器的初始化函数
(3)实现doFilter方法,完成对请求或过滤的响应
(4)调用FilterChain接口对象的doFilter方法,向后续的过滤器传递请求或响应
(5)在web.xml中配置Filter

4.servlet过滤器有关中文问题:
 
  当用用户登陆页面输入帐号时,如果输入是中文,后台servlet再次输出这个内容时,可能就会是乱码,这是因为serlvet中默认是以ISO-8859-1格式编码的,如果后台有多个Servlet,多个参数,这样就不合适,这个问题,我们可以通过一个过滤器统一解决,使后台的输出输出都支持中文!添加将ISO-8859-1转码为你所试用的编码格式(UTF-8/gb2312)的代码。

5.Servlet监听器
类似与Swing界面应用开发,Servlet也可以创建监听器,以对Servlet容器,或Servlet中以象的事件做出反应。Servlet监听器主要有以下几种:
ServletRequestListener ,ServletRequestAttributeListener,
HttpSessionActivationListener ,HttpSessionBindingListener ,
HttpSessionAttributeListener,HttpSessionListener,
ServletContextListener等等。
这些监听器主要用来监听session,request,application这三个对象里存取数据的变化。

6.、Servlet过滤器对响应的过滤:
(1)过滤器截获客户端的请求
(2)重新封装ServletResponse,在封装后的ServletResponse中提供用户自定义的输出流
(3)将请求向后续传递
(4)Web组件产生响应
(5)从封装后的ServletResponse中获取用户自定义的输出流
(6)将响应内容通过用户自定义的输出流写入到缓冲流中
(7)在缓冲流中修改响应的内容后清空缓冲流,输出响应内容

分享到:
评论

相关推荐

    Java servlet过滤器配置详解

    Java Servlet过滤器是Java Web应用程序中的重要组件,它在请求被Servlet处理之前和响应返回给客户端之后进行拦截,可以用于实现各种功能,如字符编码转换、URL重写、权限控制等。本篇将深入讲解Java Servlet过滤器的...

    javaServlet过滤器

    下面将详细介绍Java Servlet过滤器的工作原理、配置以及常见应用场景。 ### 1. 工作原理 Servlet过滤器通过实现`javax.servlet.Filter`接口来创建。当客户端发起请求时,服务器会根据`web.xml`或Java配置文件中的...

    Servlet过滤器的简单使用源码+文档

    Servlet过滤器是基于Java的Servlet API实现的,主要通过实现`javax.servlet.Filter`接口来创建。`Filter`接口定义了三个核心方法:`doFilter()`, `init()`, 和 `destroy()`。`doFilter()`方法是过滤器的核心,每当有...

    servlet过滤器实例经典过滤器

    Servlet过滤器是Java Web开发中的一个重要组件,它允许开发者在请求到达Servlet之前或者响应离开Servlet之后进行拦截处理。本教程将深入讲解如何配置和使用Servlet过滤器,以及介绍五个经典的过滤器实例。 首先,让...

    java servlet 过滤器

    Java Servlet过滤器是Java Web开发中的一个重要组件,它在Servlet规范中被定义为一个拦截请求和响应的机制。过滤器可以被配置来处理特定的URL模式,以在请求到达目标Servlet或JSP之前以及响应返回给客户端之前进行...

    servlet 过滤器做的简单登陆demo

    Servlet过滤器是Java Web开发中的一个重要概念,它允许开发者在请求到达目标Servlet之前或之后对请求和响应进行处理。在这个“servlet过滤器做的简单登陆demo”中,我们将探讨如何利用过滤器实现一个基础的登录验证...

    servlet过滤器验证用户登录

    在IT领域,特别是Java Web开发中,Servlet过滤器(Filter)是实现用户权限管理、登录状态验证等关键功能的重要机制之一。本文将深入探讨如何利用Servlet过滤器来验证用户是否已登录,以及如何配置过滤器以针对特定的...

    Servlet过滤器小实例

    ### Servlet过滤器小实例 #### 实例背景与需求分析 在Web开发中,为了保障系统的安全性和稳定性,经常需要对接收到的HTTP请求进行预处理,比如验证用户身份、过滤恶意请求等。通常情况下,这些预处理操作可以在...

    过滤器 java servlet

    Java Servlet中的过滤器(Filter)是Java Web开发中一个非常重要的概念,它是Servlet API的一部分,主要用于在请求被发送到目标Servlet或JSP之前对请求进行预处理,以及在响应返回给客户端之前对响应进行后处理。...

    servlet过滤器实现(Eclipse工程)

    Servlet过滤器是Java Web开发中的一个重要概念,它允许开发者在请求到达Servlet之前或者响应离开Servlet之后进行拦截处理。本教程将详细介绍如何在Eclipse环境中创建并实现一个Servlet过滤器。 一、Servlet过滤器...

    servlet过滤器详解

    Servlet过滤器,作为Java Servlet规范中的一个重要组成部分,自2.3版本起被引入,主要用于在Servlet容器中对请求和响应进行预处理和后处理。它不直接生成请求或响应,而是作为一个中间件存在,能够在请求到达目标...

    JAVA WEB中的Servlet过滤器

    在Java Web开发中,Servlet过滤器(Filter)是不可或缺的一部分,它允许开发者在请求到达Servlet之前或响应离开Servlet之后对其进行处理。Servlet过滤器是按照指定的配置顺序进行调用的,能够实现数据的预处理、后...

    servlet过滤器技术实例,

    Servlet过滤器是Java Web开发中的一个重要概念,它允许开发者在请求到达Servlet之前或者Servlet响应返回客户端之前进行拦截处理。在本实例中,我们将深入探讨Servlet过滤器(Filter)的使用和实现,以及它在实际应用...

    java中servlet文字过滤器

    本文将深入探讨"java中servlet文字过滤器"的概念、实现及应用场景。 ### 1. Servlet Filter简介 Servlet Filter是一种可以在请求到达目标Servlet之前或之后执行的拦截机制。它允许我们在不修改Servlet代码的情况下...

    servlet过滤器解决乱码问题

    ### Servlet过滤器解决乱码问题 在Web应用开发过程中,字符编码问题经常出现,尤其是在处理中文等多字节字符时。如果不正确地设置字符编码,可能会导致页面显示乱码。本文将详细介绍如何通过Servlet过滤器来解决这...

    Servlet过滤器使用

    这是Servlet过滤器的初始化方法,Servlet容器创建Servlet过滤器实例后将调用这个方法。在这个方法中可以读取web.xml文件中Servlet过滤器的初始化参数。 b、doFilter(ServletRequest,ServletResponse,FilterChain)...

    JAVA_Servlet过滤器.

    在学习Java技术的过程中,Servlet过滤器是一种重要的概念。过滤器是一种特殊的Java类,它可以拦截进入或离开Servlet或JSP页面的请求和响应。它能够检查和修改请求头信息、请求内容、响应头信息以及响应内容。Servlet...

    基于servlet的过滤器

    根据Java Servlet规范,过滤器(Filter)是通过实现`javax.servlet.Filter`接口来创建的。这个接口定义了三个关键方法:`init()`, `doFilter()`, 和 `destroy()`。`init()`在过滤器实例被创建并准备服务时调用,`...

    java-web -- servlet 拦截器 过滤器使用

    过滤器是Java Servlet API的一部分,它允许开发者在请求到达目标Servlet或JSP之前对其进行预处理,以及在响应返回给客户端之前进行后处理。通过实现Filter接口并配置在web.xml中,我们可以对所有请求或特定请求进行...

Global site tag (gtag.js) - Google Analytics