传智播客旗下技术交流社区北京校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© heifachangcun 中级黑马   /  2019-1-11 14:39  /  90 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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,不需指定路径

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马