汪星人 发表于 2014-3-18 22:29

java中过滤器与监听器的区别

过滤器
        1)什么是过滤器
        servlet规范当中定义的一种特殊的类,用于对
        servlet容器的调用过程进行拦截。
        2)怎样写一个过滤器
               step1 写一个java类,实现一个Filter接口。
               step2 在doFilter方法里,实现过滤的逻辑。
               step3 配置(web.xml)。
        3)配置初始化参数
                step1
                        web.xml中,使用<init-para>元素来配置初始
                        化参数
                step2
                        在Filter类当中,
                        使用FilterConfig.getInitParameter(String paraName);
                        来获得初始化参数。
        4)过滤器的优先级
                        当有多个过滤器都满足过滤的条件时,依据
                        <filter-mapping>的先后顺序依次执行。
        5)过滤器的优点
                        a,可以将多个web组件相同的逻辑写在一个
                过滤器当中,方便代码的维护。
                        b,可以实现代码的“可插拔性"。给一个软件
                        增加或者减少某个功能,不会影响到已经存在
                        的功能。
        练习:
                写一个CommentFilter2过滤器,该过滤器会
        检查comment参数值是否长度超过指定的范围(
        该范围使用初始化参数来配置,比如20)。如果
        超过长度范围,提示用户,否则,显示comment参数
        值。
       
监听器
        1)什么是监听器?
                servlet规范当中定义的一种特殊的类,
        作用是监听容器当中产生的一些事件并进行
        相应的处理。
                容器产生的事件指的是两大类事件:
        第一大类:生命周期相关的事件,指的是当
        容器创建或者销毁request,session,
        ServletContext对象时产生的事件。
        第二大类:绑订事件,指的是当调用request,
        session,ServletContext对象的setAttribute,
        removeAttribute时产生的事件。
        2)如何写监听器
                step1 写一个java类,
                实现特定的监听器接口类(依据要监听的事件类型)。
                step2 在接口声明的方法中,实现监听的逻辑。
                step3 配置(web.xml)。
        3)ServletContext接口
                web服务器在启动时,会为每一个已经部署的应用
        创建唯一的一个ServletContext实例。该实例会一直
        存在,除非服务器关闭或者应用被删除。
                a,如何获得ServletContext实例。
                GenericServlet提供了getServletContext()方法。
                HttpSession提供了getServletContext()方法。
                ServletConfig提供了getServletContext()方法。
                b,常用方法
                        b1,绑订数据
                                setAttribute(String name,Object obj);
                                getAttribute(String name);
                                removeAttribute(String name);
                        b2,配置全局的初始化参数
                                step1 在web.xml中,使用<context-param>
                        配置的参数,可以被所有的servlet共享。
                                step2 使用
                                String ServletContext
                                .getInitParameter(String paraName);
                        b3,依据逻辑路径获得实际部署时的物理路径。
                                String
                                ServletContext.getRealPath(String url);       

发光的影子 发表于 2015-10-15 13:48

看了看学习学习哈哈哈哈

woniu 发表于 2016-4-12 12:19

这个项目太棒勒!下下来学习下!

wudizxt 发表于 2017-8-12 20:44

不错不错不错不错
页: [1]
查看完整版本: java中过滤器与监听器的区别