• Servlet后续的尾(yi)巴--------Filter过滤器


                                  -------载录自  http://www.blogjava.net/yangaiyou/archive/2007/08/29/140854.html  感谢博主心如止水 一心向佛 描写出这么的具体。

    笔记:

          servlet过滤器是小型的web组件,它能够处理传入的请求和传出的响应。Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以在离开servlet时处理response。它具有高度的透明性,无需更改应用程序代码,就可以根据需要添加、修改或从应用程序中将它删除。

    一个filter 包括: 
    1. 在servlet被调用之前截获; 
    2. 在servlet被调用之前检查servlet request; 
    3. 根据需要修改request头和request数据; 
    4. 根据需要修改response头和response数据; 
    5. 在servlet被调用之后截获. 

         -----------正是基于上面的诸多原因,所以对于 Filter(过滤器代码)万万不可出错,如果出错,造成的结果则是:

            对于整个的服务器无法启动


    你能够配置一个filter 到一个或多个servlet;单个servlet或servlet组能够被多个filter 使用。几个实用的filter包括:用户辨认filter,日志filter,审核filter,加密filter,符号filter,能改变xml内容的XSLT filter等。
        类如:

          

    其中<filter-Class>是过滤器的路径;<filter-mapping>定义了该过滤器只过滤以.do结尾的URL,当然你也可以稍做修改让它过滤.jsp文件。

    一个客户化的过滤器要实现Filter接口的三个方法:init()、destroy()和doFilter()。
        1. init():在容器实例化过滤器时调用,该方法接受一个FilterConfig类型的对象做为输入。
        2. destroy():执行一些清理操作。
        3. doFilter():类似servlet的doPost()、doGet()方法,执行具体的过滤任务。

    例如: 

    下面这张便是Filter执行的过程图:

          

        

  • 相关阅读:
    for循环的执行循序
    final和finally面试时最好的回答
    关于java类加载器的一些概念
    JVM内存分析
    建造者模式
    外观模式
    常用的设计模式
    Java基础知识:Java实现Map集合二级联动3
    Java基础知识:Java实现Map集合二级联动1
    MySQL数据库怎么截取字符串?
  • 原文地址:https://www.cnblogs.com/gongxijun/p/4160086.html
Copyright © 2020-2023  润新知