【filter&listener】


    web中的filter:一般用于登录验证、统一编码、敏感字符过滤
    过滤器细节:
        

web.xml的配置
             <filter>
       <filter-name>demo2</filter-name>

        <filter-class>cn.itcast.web.filter.FilterDemo2</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>demo2</filter-name>
        <url-pattern>/*</url-pattern>
<!--        拦截路径-->
    </filter-mapping>


        过滤器生命周期
            init:在服务器启动后创建filter对象,调用init方法,加载资源,只执行一次
            doFilter:每次资源被拦截时执行
            destroy:服务器关闭后。filter被销毁,如果服务器是正常关闭则会执行destroy方法,释放资源,只执行一次
        过滤器执行流程
            执行过滤器
            执行放行后的资源
            回来执行过滤器放行下边的代码


        拦截路径配置:
            过滤器配置详解
* 拦截路径配置:
1. 具体资源路径: /index.jsp   只有访问index.jsp资源时,过滤器才会被执行
2. 拦截目录: /user/*    访问/user下的所有资源时,过滤器都会被执行
3. 后缀名拦截: *.jsp        访问所有后缀名为jsp资源时,过滤器都会被执行
4. 拦截所有资源:/*        访问所有资源时,过滤器都会被执行


        拦截方式配置
            * 注解配置:
* 设置dispatcherTypes属性
1. REQUEST:默认值。浏览器直接请求资源
2. FORWARD:转发访问资源
3. INCLUDE:包含访问资源
4. ERROR:错误跳转资源
5. ASYNC:异步访问资源


* web.xml配置:
    * 设置<dispatcher></dispatcher>标签即可
        过滤器链
            过滤器链(配置多个过滤器)
* 执行顺序:如果有两个过滤器:过滤器1和过滤器2
1. 过滤器1
2. 过滤器2
3. 资源执行
4. 过滤器2
5. 过滤器1                                                             

  过滤器先后顺序问题:
            1. 注解配置:按照类名的字符串比较规则比较,值小的先执行
                * 如: AFilter 和 BFilter,AFilter就先执行了。
            2. web.xml配置: <filter-mapping>谁定义在上边,谁先执行
        过滤敏感词
            增强对象(通用解决固定问题的方法)
                代理模式
                    代理对象代理真实对象达到增强真实对象功能的目的
                        静态代理
                            类文件描述代理模式
                        动态代理
                            内存中生成代理类
                    实现步骤:                                                                      

1. 代理对象和真实对象实现相同的接口
2. 代理对象 = Proxy.newProxyInstance();
3. 使用代理对象调用方法。
4. 增强方法


                装饰者模式
            注意:放行、传递代理对象
    监听器
        概念:web的三大组件之一。
* 事件监听机制
* 事件    :一件事情
* 事件源 :事件发生的地方
* 监听器 :一个对象
* 注册监听:将事件、事件源、监听器绑定在一起。 当事件源上发生某个事件后,执行监听器代码


        * ServletContextListener:监听ServletContext对象的创建和销毁
    * 方法:
        * void contextDestroyed(ServletContextEvent sce) :ServletContext对象被销毁之前会调用该方法
        * void contextInitialized(ServletContextEvent sce) :ServletContext对象创建后会调用该方法


    * 步骤:
        1. 定义一个类,实现ServletContextListener接口
        2. 复写方法
        3. 配置


            1. web.xml
                    <listener>
                      <listener-class>cn.itcast.web.listener.ContextLoaderListener</listener-class>
                    </listener>

                    * 指定初始化参数<context-param>
            2. 注解:
                * @WebListener

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值