Filter:过滤器 
        概念: 
                生活中的过滤器:净水器,空气净化器 
                web中的过滤器:当访问服务器的资源时,过滤器蒋请求拦截下来,完成一些特殊的功能 
                过滤器的作用: 
                        一般用于完成通用的操作:如登录验证,判断是否登录;统一编码处理.敏感字符过滤... 
        快速入门: 
                步骤: 
                        1.定义一个类(xxxFilter),实现接口Filter(javax.servlet) 
                                放行:filterChain.doFilter(servletRequest,servletResponse) 
                        2.重写方法 
                        3.配置拦截路径 
                                1.web.xml配置 
 
                                2.注解配置 
                                        在类上添加@WebFilter("/*")访问所有资源之前,都会执行该过滤器 
        过滤器细节: 
                1.web.xml配置 
                        <filter 
                                <filter-name 
                                <filter-class 
                        <filter-mapping 
                                <filter-name 
                                //拦截路径 
                                <url-pattern 
                2.过滤器执行流程 
                        过滤器在服务器启动时创建 
 
                        1.拦截前  
 
                        2.放行 
 
                        3.放行后 
 
                        请求和响应是两条线:浏览器发送请求 --> 拦截 --> 增强请求-->  服务器响应 -->拦截 -->增强响应 
                3.生命周期 
                        1.init 
                                在服务器启动时执行,只执行一次 
                        2.doFilter 
                                在浏览器访问时执行,访问一次执行一次,执行多次 
                        3.destroy 
                                在服务器正常关闭前执行,只执行一次 
                4.过滤器配置详解 
                        拦截路径配置 
                                1.具体资源路径-->/路径 : 只有访问设置的路径时,过滤器才会执行 
                                2.拦截目录-->/目录名/* : 访问设置的所有资源时,过滤器都会被执行 
                                3.后缀名拦截(后缀名前没有/)-->xx.后缀名:访问所有含有此后缀名时,过滤器被执行 
                                **4.拦截所有-->/* : 访问所有资源时,过滤器都会被执行 
 
                        拦截方式的配置(了解)         
                                概念:资源被访问的方式 
                                方式: 
                                        1.注解配置 
                                                设置dispatcherType属性 
                                                        request 默认值,浏览器直接请求资源/重定向 
                                                        forward  转发访问资源 
                                                        include  包含访问资源 
                                                        error   错误跳转资源 
                                                        async    异步访问资源 
 
                                        2.web.xml配置 
 
 
                5.过滤器链(多个过滤器) 
                        执行顺序:如果有两个过滤器-->过滤器1和过滤器2 
                                1过滤器1 
                                2.过滤器2 
                                3.资源执行 
                                4.过滤器2 
                                5.过滤器1 
                        过滤器先后顺序(优先级) 
                                1.注解配置 
                                        按照类名的字符串规则比较,值小的先执行 
                                                如:AFilter 和 BFilter  ,A Filter 先执行 
                                2.web.xml配置 
                                        <filter-mapping>谁定义在上边,谁先执行 
 
                        ****案例**** 
                                1.登录验证 
 
                                2.        敏感词汇过滤 
Listener:监听器(了解) 
 
        对方法进行增强 
                装饰者模式 
                代理模式 
                继承 
 
代理模式:一些通用的解决固定问题的方式 
                增强对象功能 
 
                概念: 
                        1.真实对象:被代理的对象 
                        2.代理对象: 
                        3.代理模式:代理对象去代理真实对象去达到增强真实对象的目的 
                实现方式: 
                        1.静态代理:有一个类文件描述代理模式 
                 ***2.动态代理:在内存中形成代理类-->框架底层原理 
                                步骤: 
                                        1.代理对象和真实对象实现相同的接口 
                                        2.代理对象=Proxy.newProxyInstance(); 
                                                 三个参数: 
                                                        1.类加载器:真实对象.getClass().getClassLoader() 
                                                        2.接口数组:真实对象.getClass().getInterfaces() 
                                                        3.处理器:new InvocationHandler() 
 
                                                @override 
                                                public Object invoke(三个参数) 
                                                        实现方法中的三个参数 
                                                                代理逻辑编写的方法:代理对象调用的所有方法都会触发该方法执行 
                                                                        参数: 
                                                                                1.proxy:代理对象 
                                                                                2.method:代理对象调用的方法,被封装为的对象 
                                                                                3.args:代理对象代用方法时,传递的实际参数 
                                        3.使用代理对象调用方法 
                                        4.增强方法 
        对方法进行增强: 
                1.继承 
 
                2.装饰者模式(提供接口) 
                        1.类名以Wrapper结尾,该类构造需要传入对象 
                        2.原本类和实现类都需要实现共同的接口 
                        3.增强类需要持有原本类的对象 
                3.代理模式(提供接口) 
                        静态代理 
                        动态代理 
                                在运行时动态创建代理对象 
                                        Ctrl +alt + 空格补全最后一个参数 
        监听器:观察者设计模式 
                概述: 
                        web的三大组件之一 
                事件监听机制: 
                        事件:一件事情 
                        事件源:事件发生的地方 
                        监听器:一个对象 
                        注册监听:将事件 事件源 监听器绑定在一起,当事件源发生某个事件后,执行监听器代码 
 
                ServletContextListener监听servletContext对象的创建和销毁 
                        接口 
                                void contextDestroyed :servletContext对象被销毁前会调用该方法 
                                void contextInitialized:servletContext对象创建后调用该方法 
 
                        步骤: 
                                1.定义一个类,实现servletContextListener接口 
                                2.复写接口中contextInitialized和contextDestroyed的方法 
                                3.配置监听器 
                                        1.web.xml(listener) 
                                        2.注解 
                                                @weblistener,不需指定路径 
 
 |   
        
 
    
    
    
     
 
 |