`
gaojingsong
  • 浏览: 1182354 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【JavaWeb过滤器原理】

阅读更多

Servlet过滤器本身并不生成请求和响应对象,它只提供过滤作用。

Servlet过滤器能够在Servlet被调用之前检查Request对象,修改Request Header和Request内容。

在Servlet被调用之后检查Response对象,修改Response Header和Response内容。

Servlet过滤器负责过滤的Web组件可以是Servlet、JSP或HTML文件。

 

 

所有的Servlet过滤器类都必须实现javax.servlet.Filter接口。这个接口含有3个过滤器类必须实现的方法:

init(FilterConfig):这是Servlet过滤器的初始化方法,Servlet容器创建Servlet过滤器实例后将调用这个方法。

在这个方法中可以读取web.xml文件中Servlet过滤器的初始化参数。

注意:一旦一个过滤器启动失败,会导致整个Web应用启动失败。

doFilter(ServletRequest, ServletResponse, FilterChain):这个方法完成实际的过滤操作。

当客户请求访问与过滤器关联的URL时,Servlet容器将先调用过滤器的doFilter方法。

FilterChain参数用于访问后续过滤器。在这个方法中调用chain.doFilter()方法,用于调用过滤器链中后续过滤器的doFilter()方法,假如没有后续过滤器,那么就把客户请求传给相应的Web组件。

如果在这个方法中没有调用chain.doFilter()方法,客户请求不会到达所访问的Web组件。

destroy():Servlet容器在销毁过滤器实例前调用该方法,在这个方法中可以释放Servlet过滤器占用的资源。



 

 

实现一个过滤器后,需要在 web.xml 中进行注册和设置它所能拦截的资源。这可以通过<filter>和<filter-mapping>元素来完成的。

其配置方式和servlet非常类似,下面是具体的配置代码

<filter>

  <filter-name>testFilterConfig</filter-name>

  <filter-class>cn.itcast.filter.TestFilterConfigFilter</filter-class>

  <!-- 配置当前 Filter 的初始化参数 -->

  <init-param>

 <param-name>name</param-name>

 <param-value>Tom</param-value>

  </init-param>

  <init-param>

 <param-name>password</param-name>

 <param-value>123456</param-value>

  </init-param>

</filter>

 

<filter-mapping>

  <filter-name>testFilterConfig</filter-name>

  <url-pattern>/*</url-pattern>

</filter-mapping>

 

/*表示所有的url都需要被这个过滤器所过滤,在同一个 web.xml 文件中可以为同一个 Filter 设置多个映射。若一个 Filter 链中多次出现了同一个 Filter 程序,这个 Filter 程序的拦截处理过程将被多次执行

 

1、拦截器是基于java的反射机制的,而过滤器是基于函数回调

2、过滤器依赖与servlet容器,而拦截器不依赖与servlet容器

3、拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用

  • 大小: 26.9 KB
0
0
分享到:
评论

相关推荐

    Javaweb过滤器.zip

    这个压缩包“Javaweb过滤器.zip”可能包含了关于如何使用和理解JavaWeb过滤器的相关教程或示例代码。下面将详细介绍JavaWeb过滤器的概念、作用以及常见应用场景。 1. **过滤器概念**: JavaWeb过滤器(Filter)是...

    JavaWeb页面过滤器之编码过滤

    在给定的标题“JavaWeb页面过滤器之编码过滤”和描述中,我们可以深入探讨JavaWeb中的编码过滤器,以及如何在MyEclipse 8.5环境下开发和应用这样的过滤器。这个过滤器不仅适用于JSP页面,也适用于Servlet和HTML等Web...

    javaweb_高级_过滤器_监听器

    过滤器原理 过滤器是Servlet规范中的一个重要组成部分,它的工作原理在于拦截客户端对Web资源的请求。当用户尝试访问某个Servlet或JSP时,过滤器会在请求到达目标组件之前介入,执行自定义的业务逻辑。过滤器的...

    javaWeb实现的过滤器敏感字过滤

    综上所述,"javaWeb实现的过滤器敏感字过滤"项目通过使用JavaWeb过滤器技术,有效地防止了敏感字符的传播,提高了应用程序的安全性。通过不断学习和实践,我们可以更好地掌握这一技能,为构建更安全、可靠的Web应用...

    JavaWeb中的监听器与过滤器

    ### JavaWeb中的监听器与过滤器 #### 一、监听器(Listener) 监听器是Java Web应用程序中的一个重要组件,主要用于监听容器中特定事件的发生,并作出相应的反应。在Java Web开发中,监听器主要用来监控应用中某些...

    jsp过滤器的使用(含一个project实例说明)

    **JSP过滤器详解与项目实例** 在Java Web开发中,JSP(JavaServer Pages)是用于创建动态网页的一种技术,而过滤器(Filter)则是Servlet API中的一部分,用于处理HTTP请求和响应,提供了一种预处理和后处理请求的...

    javaWEB总结(33):检查用户是否登陆过滤器

    综上所述,`javaWeb_33`这个文件可能包含了一个实现用户登录检查的Java Web过滤器示例,它展示了如何利用过滤器机制来确保只有登录用户才能访问受保护的资源。通过深入理解过滤器的工作原理和配置方式,开发者可以更...

    javaweb拦截器配置及原理.doc

    用户的访问需要先经过第一个过滤器,然后再经过第二个过滤器。 Filter 接口的主要方法有: 1. doFilter(ServletRequest request, ServletResponse response, FilterChain chain):执行拦截功能代码。 2. init...

    JavaWeb大作业(JavaWeb实现增、删、改、查、过滤器、登陆、带简单的网页前端、连接jdbc).zip

    这个大作业项目涵盖了JavaWeb开发中的多个核心概念,包括基本功能实现、过滤器(Filter)、用户登录、简单的网页前端设计以及数据库连接通过JDBC。下面我们将详细探讨这些知识点。 1. **基本功能实现**:在JavaWeb...

    javaweb简单留言版

    过滤器的工作原理是通过实现`javax.servlet.Filter`接口并重写`doFilter()`方法来实现的。当用户发送HTTP请求到服务器时,过滤器会在请求被实际处理前介入,可以进行诸如认证、授权、数据转换、日志记录等多种操作。...

    javaweb中Filter(过滤器)的常见应用.docx

    ### JavaWeb中Filter(过滤器)的常见应用 #### 一、概述 在JavaWeb开发中,`Filter`(过滤器)是一种非常重要的组件,它主要用于对用户请求进行预处理或者对响应结果进行后处理。通过合理的配置和设计,开发者...

    JavaWeb Servlet过滤监听应用.zip

    过滤器(Filter)在Servlet执行之前或之后介入,提供了一个在请求到达目标Servlet之前和之后对其进行拦截、修改或转发的机制。过滤器可以用于实现如权限控制、数据格式转换、日志记录等多种功能。它们通过实现javax....

    java过滤器对所有参数去除前后空格

    对项目中的所有参数去除前后空格...可以基于此过滤器实现过滤跨站脚本攻击,参数的增加,修改!敏感词汇过滤。实现原理为重写HttpServletRequestWrapper,获取参数的方法。include和 Forwarded 内部转发不在过滤之内。

    javaweb的期末作业

    这个“javaweb的期末作业”可能涵盖了多个JavaWeb相关的知识点,包括但不限于Servlet、JSP、MVC设计模式、JDBC数据库连接、过滤器、监听器、会话管理等。 1. **Servlet**: Servlet是Java Web应用程序的核心组件,它...

    javaWEB 教材源码

    6. **过滤器(Filter)与监听器(Listener)**:这两者是JavaWeb中的重要组件,过滤器可以拦截请求和响应,实现预处理和后处理功能,如字符编码转换;监听器则可以监听特定事件,如session的创建和销毁。 7. **Web...

    javaweb由浅入深 ppt和用例

    JavaWeb技术是构建基于Java平台的互联网应用的重要组成部分,它涵盖了Servlet、JSP、JavaBean、JSTL、MVC模式、过滤器、监听器等多个关键知识点。本资源"javaweb由浅入深 ppt和用例"为初学者和进阶者提供了全面的...

    方立勋JavaWeb视频前九天

    7. **过滤器与监听器**:讲解Filter和Listener的作用,如登录验证过滤器、字符编码过滤器,以及会话监听器、请求监听器的应用。 8. **JDBC与数据库操作**:介绍如何使用JDBC连接数据库,执行SQL语句,处理结果集,...

    JavaWeb 视频教程 传智播客 第21天 共28天

    在这个阶段,我们将重点讨论JavaWeb中的一个重要组件——过滤器(Filter)。过滤器在JavaWeb应用中起着至关重要的作用,它允许我们在数据处理的各个阶段进行拦截和处理,从而实现如请求预处理、响应后处理、数据转换...

    javaweb.基础知识课件

    web.xml是JavaWeb应用的配置文件,用于配置Servlet、过滤器、监听器以及应用的全局设置。熟练掌握web.xml的编写能提高应用的灵活性和可维护性。 9. **Servlet容器(如Tomcat)**: Tomcat是常见的Servlet容器,...

Global site tag (gtag.js) - Google Analytics