• Filter拦截器和Listen监听器


    Filte过滤器概述 

    1   过滤器是一个驻留在服务器端的Web组件,可以截取用户端和资源之间的请求响应信息,并对信息进行过滤
    过滤的工作流程。
    过滤器作用描述
    1  ,在HttpServletRequsst到达Servlet之前, 拦截客户的HttpServletRequsst
    2 , 根据需要检查HttpServletRequsst,也可以修改HttpServletRequsst头和数据
    3 , 在HttpServletRequsst到达客户端之前,拦截HttpServletResopnse
    4  ,根据需要检查HttpServletResponse, 可以修改HttpServletResponse头 和数据。
    过滤器的组成部分: 
    1  过滤源
                 A 所有符合规则的数据交互行为
    2   过滤规则
    3   过滤结果
     
    过滤器的部署。
    一.实现javax.servlet.Filter接口
    1  void destory();销毁,在服务器关闭时调用,释放filter占用 的资源
    2  。 void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws,IOException,ServletException; 过滤规则,自动执行的过滤代码,我们需要自定义的部分, 如果符合过滤规则, 则通过chain放行。如果不符合规则,则做出处理。
    3   , void init(FilterConfig filterConfig) throws ServletException; 在服务器启动时自动调用,初始化Filte
     
     过滤器在web.xml中的配置
    一  : 过滤器的配置
    1  web. xml 中 配置 <filter>和<filter-mapping> 标签(同Servlet 标签)
     A Filter 的元素, 
     
     
    关于URL -patttern-Filter的映射
    一: 分类
    1  路径映射: 以"/"开头 和以"/*"结尾的是 用来做路径映射的
    2 。 扩展映射: 以"  * "开头的是用来做扩展映射的
    注意:  如果配置文件中 又出现/*的路径映射,又出现*.do 的带后缀名的扩展映射,会报服务器错误。例如:
     
    Filter的生命周期;
    1, Web服务器启动,产生filter实例
    2 ,调用init方法,初始化filter
    3, 当发送请求时, 调用dofilter
    4, Web容器关闭时,调用destroy方法释放资源
     
    说明: 
    Filter 使用户可以改变一个request和修改一个response。Filter不是一个servlet , 它不能产生一个response,也可以在response离开servlet时处理response,换句话说,Filter更像是一个servlet chaning
     
     
    配置多个过滤器:
    一 : 在一个web 应用中,可以部署多个过滤器,组成一个过滤器链。过滤器链中的每个过滤器负责特定的操作和任务,客户端的请求在这些过滤器之间传递,直到目标资源
     
    多个Filter的处理流程
     

    listener 概述

    listener 用于监听java web程序中的事件,例如创建,修改,删除session,request,context 等,并触发响应的事件。
    listener 对应观察者模式,事件发生的时候会自动触发该时间对应的listener,listener 主要用于对session,request,context进行监控,servlet2.5规范中共有8种listener。
     
    实现: 
    不同功能的listener 需要实现不同的listener接口,一个listener也可以实现多个接口,这样就可以多种功能的监听器一个工作。
     
    8种监听器可以分为三类: 
    1    , 监听 Session、request、context 的创建与销毁,分别为 HttpSessionLister、ServletContextListener、ServletRequestListener
    2    ,  监听对象属性变化,分别为: HttpSessionAttributeLister、
    ServletContextAttributeListener、ServletRequestAttributeListener
    3    ,   监听Session 内的对象,分别为HttpSessionBindingListener 和
    HttpSessionActivationListener。与上面六类不同,这两类 Listener 监听的是Session 内的对象,而非 Session 本身,不需要在 web.xml中配置。
     
    单态登录监听器。
  • 相关阅读:
    17款加速效率的CSS工具
    我为什么向后端工程师推荐Node.js
    八款开源 Android 游戏引擎 (巨好的资源)
    50个必备的实用jQuery代码段
    $.getJSON()跨域请求
    javascript獲得服務器端控件的ID
    (转)8款在线CSS优化工具/组织和压缩CSS
    10 个文件和文档的比较工具
    40个有创意的jQuery图片和内容滑动及弹出插件收藏集之四
    MBP换硬盘的过程
  • 原文地址:https://www.cnblogs.com/thelovelybugfly/p/10832346.html
Copyright © 2020-2023  润新知