0826过滤器和监听器

过滤器: 定义在服务器端的一段程序, 可以截获客户端发来的请求, 并根据一定规则进行过滤和拦截

过滤器的生命周期:
        服务器启动
            先通过web.xml加载过滤器进行实例化(这个过程是调用过滤器中init()方法, 同样也是只执行一次)
        客户端发送请求:
            执行过滤器中的doFilter()方法, 这个方法会执行N次, 每次有请求发送过来, 都会执行这个方法进行过滤
        销毁过程
            同servlet, 关闭或者停止服务器的时候会执行destory()方法

过滤器链:
        不同的请求互不影响
        过滤器链主要是针对多个过滤器过滤同一个url请求
        过滤器的先后顺序是按照在web.xml的配置顺序来的
        运行顺序: 请求--->过滤器1过滤--->过滤器2过滤--->后台处理层--->过滤器2过滤--->过滤器1过滤--->客户端接收

3.0新特性的过滤器:
        使用注解的方式:
            @WebFilter(filterName="", value={"",""}...等其他配置)

监听器: 运行在服务器端的程序, 主要用于监听request, application, session这三个对象, 比如这三个对象的创建和销毁, 修改属性等一系列的操作
    监听器的配置
        创建类实现关于监听器的那些接口
        public class TestListener implements ...Listener... {
            ...实现其中的方法
        }

web.xml中的配置
            <listener>
                <listener-class>定义监听器的类的全路径名</listener-class>
            </listener>
        
        使用注解的方式:
            @WebListener写在类名的上面

多个监听器的加载顺序
        按照web.xml的配置顺序来加载各个监听器
        如果在web.xml中配置有监听器, 过滤器, Servlet时, 他们的优先级分别为
            监听器 > 过滤器 > Servlet

ServletContext对象的监听
        在web.xml中有这样一个标签:
            <context-param>
                <param-name>初始化的参数名</param-name>
                <param-value>初始化的参数值</param-value>
            </context-param>

在监听器中可以使用参数对象来获取这个初始化参数
            String value = applicationEvent.getServletContext().getInitParameter("hanqi");
    HttpSession对象的监听
        session在一个用户第一次访问这个页面的时候被创建, session的实例可以创建多个, 有一个用户访问, 就会创建一个session
        用途: 统计在线人数, 网站的用户访问量

HttpServletRequest对象的监听
        只要有请求发送过来, 就会执行监听器中的init()方法和destory()方法
        用途: 读取参数, 记录访问历史

3.0版本之后的监听器只需要加上一个@WebListenner注解就可以使用, 但是跟之前在web.xml中配置的时候相比, 有一个缺点, 无法确定监听器的加载顺序

时间: 2024-10-01 09:56:45

0826过滤器和监听器的相关文章

过滤器、监听器、拦截器配置

一.过滤器.监听器配置在web.xml配置文件中,拦截器则不一定,可通过 web.xml加载配置拦截器的文件: 1.在DispatcherServlet的初始化过程中,Spring会在web应用的WEB-INF文件夹下寻找名为[servlet-name]-servlet.xml的配置文件,     生成文件中定义的bean.这些bean会覆盖在全局范围(global cope)中定义的同名的bean.如果servletName-servlet.xml不在默认路径下必须显示指定. 2. 在 XXX

Java 过滤器、监听器、拦截器的区别

原文:http://www.360doc.com/content/10/0601/09/495229_30616324.shtml 1.过滤器 Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码.做一些业务逻辑判断等.其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request.Response)统一设置编码,简化操作:同时还可进行逻辑判断,如用户是否

java 拦截器、过滤器、监听器

转自:http://www.cnblogs.com/wangyuyu/archive/2013/07/02/3167354.html 一.理解Struts2拦截器 1. Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现. 2. 拦截器栈(Interceptor Stack).Struts2拦截器栈就是将拦截器按一定的顺序联结成一条链.在访问被拦截的方法或字段时,Struts2拦截器链中的拦截

JSP详细篇——Servlet过滤器和监听器

过滤器和监听器 Servlet过滤器是从Servlet2.3规范开始新增的功能,并在Servlet2.4规范中得到增强,监听器可以监听到Web应用程序启动和关闭.创建监听器需要实现响应的接口,并对其进行配置. Servlet过滤器 1.什么是过滤器 Servlet过滤器与Servlet十分相似,但是它具有拦截客户端请求的功能.Servlet过滤器可以改变请求中的内容,来满足实际开发中的需要.对于程序开发人员来说,过滤器实质上就是在Web应用服务器上的一个Web应用组件,用于拦截客户端与目标资源之

过滤器、监听器、上下文、servlet线程安全问题

就像名字写那样,过滤器可以过滤请求,比如对一些评论进行过滤.又不改原有代码的基础上可以加上一个过滤器,或者是登陆验证.集中在一个过滤器中处理.写一个类实现接口 Filter 之后一定要在配置文件中配置!!!监听器可以监听,上下文的概念. 过滤器: 什么是过滤器: servlet规范当中定义的一种特殊的组件,用来拦截servlet容器的调用过程. 会先调过过滤器的方法,过滤器决定是否向后继续调用就是调用servlet容器 容器收到请求之后 通常情况下会调用servlet的service方法来处理请

java中过滤器和监听器详解

先说一下java中过滤器的作用: 过滤器是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的 action进行业务逻辑,比如过滤掉非法url.主要为了减轻服务器负载.减少压力 拦截器的作用: 拦截器是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法.比如可以用拦截器做一些权限管理 或者log之类的事情. 过滤器和拦截器他们的作用是不同的.   Java中过

springBoot(6)---过滤器,监听器,拦截器

过滤器,监听器,拦截器 一.理解它们 看里十几篇博客,总算有点小明白,总的来讲,两张图可以让我看明白点. 通过两幅图我们可以理解拦截器和过滤器的特点 1.过滤器 过滤器是在请求进入tomcat容器后,但请求进入servlet之前进行预处理的.请求结束返回也是,是在servlet处理完后,返回给前端之前. 理解上面这句话我们就可以知道,进入servlet之前,主要是两个参数:ServletRequest,ServletResponse  那我们得到这两个测试可以干哪些事呢? 我们可以通过Servl

SpringBoot | 第七章:过滤器、监听器、拦截器

前言 在实际开发过程中,经常会碰见一些比如系统启动初始化信息.统计在线人数.在线用户数.过滤敏高词汇.访问权限控制(URL级别)等业务需求.这些对于业务来说一般上是无关的,业务方是无需关系的,业务只需要关系自己内部业务的事情.所以一般上实现以上的功能,都会或多或少的用到今天准备讲解的过滤器.监听器.拦截器来实现以上功能. 过滤器 利用WebFilter注解配置 FilterRegistrationBean方式 监听器 拦截器 请求链路说明 最后 老生常谈 过滤器 过滤器Filter,是Servl

servlet/filter/listener/interceptor过滤器、监听器、拦截器区分

因为之前一直分不清过滤器和拦截器的区别,所以有了两者差不多的错觉,因此在这里总结下servlet/filter/listener/interceptor过滤器.监听器.拦截器. 在此之前先简单回顾下servlet: 概述:servlet是一种运行服务器端的java应用程序,它工作在客户端请求与服务器响应的中间层. 主要作用:在于交互式地浏览和修改数据,生成动态 Web 内容. 访问流程: 1,客户端发送请求至服务器端: 2,服务器将请求信息发送至 Servlet: 3,Servlet 生成响应内