• Tomcat


    教程推荐:https://www.cnblogs.com/xdp-gacl/p/3729033.html  孤傲苍狼博客

    过滤器Filter+监听器Listener+拦截器(Interceptor)

    总的对比:参考自:https://blog.csdn.net/reggergdsg/article/details/52962774

    过滤器Filter:  当浏览器发送请求给服务器的时候,先执行过滤器,然后才访问Web的资源。服务器响应Response,从Web资源抵达浏览器之前,也会途径过滤器。

    过滤器可以做:

    • 过滤一些敏感的字符串【规定不能出现敏感字符串】、
    • 避免中文乱码【规定Web资源都使用UTF-8编码】、
    • 权限验证【规定只有带Session或Cookie的浏览器,才能访问web资源】等等等,

    过滤器的作用非常大,只要发挥想象就可以有意想不到的效果;也就是说:当需要限制用户访问某些资源时、在处理请求时提前处理某些资源、服务器响应的内容对其进行处理再返回、我们就是用过滤器来完成的!

    拦截器的概念
      java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Action中可重用部分代码的方式。在AOP中,拦截器用于在某个方法或者字段被访问之前,进行拦截。然后再之前或者之后加入某些操作。目前,我们需要掌握的主要是Spring的拦截器,Struts2的拦截器不用深究,知道即可。

    过滤器与拦截器的区别

      过滤器可以简单的理解为“取你所想取”,过滤器关注的是web请求;

      拦截器可以简单的理解为“拒你所想拒”,拦截器关注的是方法调用,比如拦截敏感词汇。

    • 拦截器是基于java反射机制来实现的,而过滤器是基于函数回调来实现的。(有人说,拦截器是基于动态代理来实现的)
    • 拦截器不依赖servlet容器,过滤器依赖于servlet容器。
    • 拦截器只对Action起作用,过滤器可以对所有请求起作用。
    • 拦截器可以访问Action上下文和值栈中的对象,过滤器不能。
    • 在Action的生命周期中,拦截器可以多次调用,而过滤器只能在容器初始化时调用一次。

    监听器(listener)就是application、session、request三个对象创建、销毁或者往其中添加修改删除属性时自动执行代码的功能组件,如下所示:

      ①ServletContextListener:对Servlet上下文的创建和销毁进行监听。
      ②ServletContextAttributeListener:监听Servlet上下文属性的添加、删除和替换。
      ③HttpSessionListener:对Session的创建和销毁进行监听。

      常见的监听器用途主要包括:网站在线人数技术、监听用户的行为(管理员踢人)。

  • 相关阅读:
    用numpy实现CNN卷积神经网络
    用numpy实现BP神经网络
    扩展域并查集学习笔记
    My Blog问卷
    二叉搜索树(BST)学习笔记
    我的代码风格
    substr函数学习
    memset与fill的区别
    快读快写
    洛谷题解 CF777A 【Shell Game】
  • 原文地址:https://www.cnblogs.com/clarino/p/13036517.html
Copyright © 2020-2023  润新知