`

JAVA WEB学习笔记(四)-Servlet过滤器

    博客分类:
  • J2EE
阅读更多

一、Servlet过滤器的概念:
***************************************************************************************
Servlet过滤器是在Java Servlet规范2.3中定义的,它能够对Servlet容器的请求和响应对象进行检查和修改。   

Servlet过滤器本身并不产生请求和响应对象,它只能提供过滤作用。Servlet过期能够在Servlet被调用之前检查Request对象,修改Request Header和Request内容;在Servlet被调用之后检查Response对象,修改Response Header和Response内容。

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


二、Servlet过滤器的特点:
***************************************************************************************
A.Servlet过滤器可以检查和修改ServletRequest和ServletResponse对象
B.Servlet过滤器可以被指定和特定的URL关联,只有当客户请求访问该URL时,才会触发过滤器
C.Servlet过滤器可以被串联在一起,形成管道效应,协同修改请求和响应对象
***************************************************************************************


三、Servlet过滤器的作用:
***************************************************************************************
A.查询请求并作出相应的行动。
B.阻塞请求-响应对,使其不能进一步传递。
C.修改请求的头部和数据。用户可以提供自定义的请求。
D.修改响应的头部和数据。用户可以通过提供定制的响应版本实现。
E.与外部资源进行交互。
***************************************************************************************


四、Servlet过滤器的适用场合:
***************************************************************************************
A.认证过滤
B.登录和审核过滤
C.图像转换过滤
D.数据压缩过滤
E.加密过滤
F.令牌过滤
G.资源访问触发事件过滤
H.XSL/T过滤
I.Mime-type过滤
***************************************************************************************


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

A.init(FilterConfig):
这是Servlet过滤器的初始化方法,Servlet容器创建Servlet过滤器实例后将调用这个方法。在这个方法中可以读取web.xml文件中Servlet过滤器的初始化参数

B.doFilter(ServletRequest,ServletResponse,FilterChain):
这个方法完成实际的过滤操作,当客户请求访问于过滤器关联的URL时,Servlet容器将先调用过滤器的doFilter方法。FilterChain参数用于访问后续过滤器

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


六、Servlet过滤器的创建步骤:
***************************************************************************************
A.实现javax.servlet.Filter接口
B.实现init方法,读取过滤器的初始化函数
C.实现doFilter方法,完成对请求或过滤的响应
D.调用FilterChain接口对象的doFilter方法,向后续的过滤器传递请求或响应
E.销毁过滤器
***************************************************************************************


七、Servlet过滤器对请求的过滤:
***************************************************************************************
A.Servlet容器创建一个过滤器实例
B.过滤器实例调用init方法,读取过滤器的初始化参数
C.过滤器实例调用doFilter方法,根据初始化参数的值判断该请求是否合法
D.如果该请求不合法则阻塞该请求
E.如果该请求合法则调用chain.doFilter方法将该请求向后续传递
***************************************************************************************


八、Servlet过滤器对响应的过滤:
***************************************************************************************
A.过滤器截获客户端的请求
B.重新封装ServletResponse,在封装后的ServletResponse中提供用户自定义的输出流
C.将请求向后续传递
D.Web组件产生响应
E.从封装后的ServletResponse中获取用户自定义的输出流
F.将响应内容通过用户自定义的输出流写入到缓冲流中
G.在缓冲流中修改响应的内容后清空缓冲流,输出响应内容
***************************************************************************************

九、Servlet过滤器的发布:
***************************************************************************************
A.发布Servlet过滤器时,必须在web.xml文件中加入<filter>元素和<filter-mapping>元素。

B.<filter>元素用来定义一个过滤器:
属性                   含义
filter-name    指定过滤器的名字
filter-class    指定过滤器的类名
init-param    为过滤器实例提供初始化参数,可以有多个

C.<filter-mapping>元素用于将过滤器和URL关联:
属性                     含义
filter-name    指定过滤器的名字
url-pattern    指定和过滤器关联的URL,为”/*”表示所有URL
***************************************************************************************


十一、Servlet过滤器使用的注意事项
***************************************************************************************
A.由于Filter、FilterConfig、FilterChain都是位于javax.servlet包下,并非HTTP包所特有的,所以其中所用到的请求、响应对象ServletRequest、ServletResponse在使用前都必须先转换成HttpServletRequest、HttpServletResponse再进行下一步操作。

B.在web.xml中配置Servlet和Servlet过滤器,应该先声明过滤器元素,再声明Servlet元素


C.如果要在Servlet中观察过滤器生成的日志,应该确保在server.xml的localhost对应的<host>元素中配置如下<logger>元素:
<Logger className = “org.apache.catalina.logger.FileLogger”
directory = “logs”prefix = “localhost_log.”suffix=”.txt”
timestamp = “true”/>
***************************************************************************************

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/pengpenglin/archive/2006/05/02/706114.aspx

分享到:
评论

相关推荐

    JAVA WEB学习笔记

    【JAVA WEB学习笔记】 Java Web是Java技术在Web开发领域中的应用,涵盖了从服务器端编程到客户端交互的各种技术。这份学习笔记将带你深入理解Java Web的核心概念和实践技巧。 1. **Servlet与JSP** - Servlet是...

    java笔记 Java-Web笔记 J2EE三大框架笔记

    其次,Java-Web笔记进一步讲解了Servlet、JSP、过滤器、监听器等Java Web开发的核心技术。Servlet是Java Web应用的基础,用于接收和响应HTTP请求;JSP则提供了更简便的视图层开发方式,允许开发者在HTML中嵌入Java...

    java web学习笔记

    Java Web学习笔记是深入理解Web开发技术的重要参考资料,尤其对于初学者来说,它提供了一条系统学习的路径。这份笔记的作者在学习过程中积累了丰富的知识,并将其归纳整理,旨在帮助那些希望进入Java Web领域的...

    java web 学习笔记

    Java Web学习笔记主要涵盖的是与开发Web应用程序相关的Java技术,包括Servlet、JSP、过滤器、监听器、MVC框架(如Spring MVC)、会话管理、请求和响应处理、数据库连接以及各种工具的使用等。这里我们将深入探讨这些...

    java Servlet学习笔记

    Java Servlet是Java编程语言中用于处理Web服务器与客户端交互的一种技术,主要应用于构建动态Web应用程序。...在实践中,还需要掌握异常处理、会话管理、过滤器、监听器等高级特性,以实现更高效、安全的Web应用。

    java web课程笔记总结

    根据提供的标题、描述和部分上下文内容,我们可以推断出这份“Java Web课程笔记总结”是一份关于Java Web开发的学习资料。尽管实际的文字内容没有给出,但基于标题和描述中的关键词,我们可以归纳出一系列重要的Java...

    JSP-Servlet学习笔记第2版.pdf

    10. JSP和Servlet的高级特性:比如会话跟踪、cookie处理、过滤器、监听器、MVC模式等。 11. 实际开发中遇到的问题及其解决方案:例如,处理请求中文乱码问题、在开发中如何分层以及代码的组织和管理。 以上就是...

    jsp/servlet个人学习笔记

    在 `web.xml` 文件中,开发者可以配置 JSP 页面、Servlet、过滤器和监听器的行为,以及定义 URL 映射、错误处理等。它是整个 Web 应用的配置中心。 9. **常见错误** 在 JSP 和 Servlet 开发中,常见的错误包括...

    Servlet学习笔记

    Servlet技术是Java Web开发的核心组件之一,它是一个基于Java的Web应用组件,运行于Web服务器或应用服务器中,用于扩展服务器的功能,处理客户端的请求并返回响应。Java Servlet可视为服务器端的applet(小程序),...

    web学习笔记 —— 过滤器

    本文将深入探讨过滤器的概念、工作原理以及如何在Java Web应用程序中使用过滤器。 过滤器是Servlet规范的一部分,它通过实现javax.servlet.Filter接口来创建。这个接口定义了三个主要方法:doFilter、init和destroy...

    圣思园java.web笔记

    7. **过滤器与监听器**:在Java Web中,过滤器用于拦截和处理请求,监听器可以监听特定事件并作出响应,它们都是提升应用功能的重要组件。 8. **请求转发与重定向**:两种在服务器端改变请求流向的方式,用于实现...

    韩顺平笔记 java jsp servlet

    "韩顺平servlet笔记(8讲)"可能讲解了Servlet生命周期、请求和响应对象、过滤器和监听器等核心概念。通过学习Servlet,你可以理解Web应用的后端逻辑,并能有效地处理用户请求。 这三者结合,构成了一套完整的Java ...

    java学习笔记(全)

    接下来,笔记会涉及Java Web的相关知识,如Servlet、JSP、过滤器、监听器等。这些都是构建动态Web应用程序的基础,让你能够创建交互式的网页服务。此外,笔记还可能讲解MVC(模型-视图-控制器)架构模式,以及如何...

    林学良Jsp&Servlet学习笔记

    在实际学习过程中,你可能还会涉及到Web容器的概念、部署描述符(web.xml)、请求和响应对象的使用、会话管理、Cookie、过滤器和监听器等进阶话题。通过不断实践和理解,你将能够熟练掌握这两种技术,为构建复杂的...

    javaweb 学习笔记

    以上是关于 JavaWeb 学习笔记中提到的主要知识点,包括 Web 应用的基本概念、目录结构、配置文件详解以及 Tomcat 的虚拟目录和虚拟主机配置方法。希望这些内容能帮助初学者更好地理解 JavaWeb 开发的核心要素和技术...

    java学习笔记(包含web开发技术的原理配置)

    Java学习笔记是一个全面涵盖Java基础知识和Web开发技术的资源,非常适合初学者和进阶者深入理解这门语言及其在Web开发中的应用。这份文档可能包含了从语法基础到高级特性的详细讲解,以及如何将Java应用于Web环境的...

    jsd1906 达内 07-Servlet.rar

    在"jsd1906 达内 07-Servlet.rar"这个压缩包中,包含了关于Servlet的学习笔记和源码,这些都是深入理解Servlet技术的重要资料。 1. **Servlet生命周期** Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。...

    超详细的ServletL学习笔记

    ### 超详细的Servlet学习笔记 #### 一、Servlet简介 **Servlet** 是Java平台上的一个重要的技术标准,主要...未来的学习中,我们将进一步探索Servlet的高级特性,如过滤器、监听器等,以及如何结合MVC模式进行开发。

    JSP&Servlet学习笔记.pdf

    由于这部分内容是电子书中的学习笔记,电子书的内容并未直接给出,因此只能根据电子书的标题“JSP&Servlet学习笔记”和描述来推测可能涉及的知识点,而没有具体的电子书内容可以分析。如需进一步学习,建议查阅相关...

    JSP Servlet 学习笔记源码

    JSP(JavaServer Pages)和Servlet是Java Web开发中的核心技术,它们主要用于构建动态网页和Web应用程序。本学习笔记源码提供了全面的学习资源,涵盖了这两个技术的基础到高级应用,旨在帮助开发者深入理解并熟练...

Global site tag (gtag.js) - Google Analytics