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中配置。
 
单态登录监听器。

Filter拦截器和Listen监听器的更多相关文章

  1. java:(json,ajax,path,Oracle的分页实例,Filter拦截器)

    1.json: <%@ page language="java" import="java.util.*" pageEncoding="UTF- ...

  2. 过滤器(Filter)、拦截器(Interceptor)、监听器(Listener)

    一.Filter 过滤器 1.简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servle ...

  3. Java filter拦截器的使用

    1.web.xml配置 <!-- 验证是否登录 拦截功能 --> <filter> <filter-name>isLogin</filter-name> ...

  4. spring filter拦截器

    实现的功能:判断用户是否已登录,未登录用户禁止访问任何页面或action,自动跳转到登录页面.比较好的做法是不管什么人都不能直接访问jsp页面,要访问就通过action,这样就变成了一个实实在在的权限 ...

  5. Hibernate拦截器(Interceptor)与事件监听器(Listener)

    拦截器(Intercept):与Struts2的拦截器机制基本一样,都是一个操作穿过一层层拦截器,每穿过一个拦截器就会触发相应拦截器的事件做预处理或善后处理. 监听器(Listener):其实功能与拦 ...

  6. hibernate的拦截器和监听器

    拦截器(Intercept):顾名思义,拦截操作,也就是在Hibernate做出动作之前会调用的方法.如果你有需要在Hibernate操作数据库之前想要做的操作,就需要用到这个东西了. 监听器(Lis ...

  7. Struts2入门(二)——配置拦截器

    一.前言 之前便了解过,Struts 2的核心控制器是一个Filter过滤器,负责拦截所有的用户请求,当用户请求发送过来时,会去检测struts.xml是否存在这个action,如果存在,服务器便会自 ...

  8. MVC5-11 浅谈拦截器

    Filter拦截器 Aop是MVC的主要设计方式之一,而微软也希望我们在使用MVC的时候更好的使用拦截器来进行切面编程.拦截器则是Mvc中的一大亮点与重点 AOP(面向切面)编程已经广泛应用在各个项目 ...

  9. Struts2拦截器介绍

    一.拦截器简介 Struts拦截器和Action的关系如图: 为了在使用拦截器时制定参数值,应通过<interceptor-ref -/>元素添加<param -/>子元素来为 ...

随机推荐

  1. [TimLinux] JavaScript BOM浏览器对象模型

    1. 简介 ECMAScript是JavaScript的核心,但是如果要在WEB中使用JavaScript,那么BOM则无疑才是真的的核心.BOM提供了很多对象,用于访问浏览器的功能,这些功能与任何网 ...

  2. Ubuntu18.04安装openCV4.1.2

    Ubuntu18.04下安装openCV4.1.2 注意: 在整个安装过程中,包括后期QT的使用中不要出现中文路径.会很坑的. 一.下载openCV4.1.2 可以再官网进行下载https://ope ...

  3. Django 08

    目录 sweetalert弹窗 bulk-create 自定义分页器 sweetalert弹窗 下载sweetalert并存放在Django项目中的静态文件夹中 https://github.com/ ...

  4. LNMP-Nginx配置SSL

    SLL工作流程: 浏览器发送一个https的请求给服务器: 服务器要有一套数字证书,可以自己制作(后面的操作就是阿铭自己制作的证书),也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以 ...

  5. 开局一张图,学一学项目管理神器Maven!

    Maven强大的Java工程构建工具,做Java开发时少了跟Maven打交道,之前在知乎上看到有人提问:"学Java开发需不需要学习Maven?",个人认为是必需要学的,这和工欲善 ...

  6. TimePicker - NG-ZORRO设置

    前言 依照官方例子,要给nz-time-picker组件设置某些时间范围不能选择. 正文 根据列表里设置的开始时间与结束时间,去限制弹框的时间组件选择范围.这里用到了组件的nzDisabledHour ...

  7. 什么是cookie?什么是session?session和cookie有什么区别?

    在技术面试中,经常被问到“说说Cookie和Session的区别”,大家都知道,Session是存储在服务器端的,Cookie是存储在客户端的,然而如果让你更详细地说明,你能说出几点?今天个推君就和大 ...

  8. Python 浮点数的冷知识

    本周的PyCoder's Weekly 上分享了一篇小文章,它里面提到的冷知识很有意思,我稍作补充,分享给大家. 它提到的部分问题,读者们可以先思考下: 若两个元组相等,即 a==b 且 a is b ...

  9. python子类如何继承父类的实例变量?

    类型1:父类和子类的实例变量均不需要传递 class A(object): def __init__(self): self.name = "cui" def get_name(s ...

  10. python通过人脸识别全面分析好友,一起看透你的“朋友圈”

    微信:一个提供即时通讯服务的应用程序,更是一种生活方式,超过数十亿的使用者,越来越多的人选择使用它来沟通交流. 不知从何时起,我们的生活离不开微信,每天睁开眼的第一件事就是打开微信,关注着朋友圈里好友 ...