博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
监听器详解
阅读量:4305 次
发布时间:2019-05-27

本文共 1273 字,大约阅读时间需要 4 分钟。

监听器详解

    (1)什么是监听器

        servlet规范当中定义的一种特殊的组件,用来监听容器产生的事件。

        注:

            容器产生的事件主要有两大类

            1)生命周期相关的事件

                容器创建了或者销毁了request,session,servletContext(servlet上下文)时产生的事件。

            2)绑订数据相关的事件

                调用了request,session,servlet上下文的setAttribute,removeAttribute时产生的事件。

    (2)ServletContext(servlet上下文)

        1)什么是servlet上下文?

            容器启动之后,会为每一个web应用创建唯一的一个符合ServletContext接口要求的对象。

            特点

                a.唯一性:一个web应用对应唯一的一个上下文。

                b.持久性:只要容器没有关闭,并且应用没有被删除,则上下文会一直存在。

        2)如何获得上下文?

            GenericServlet,    ServletConfig,FilterConfig,HttpSession提供了一个getServletContext方法来获得上下文。

        3)作用

            a.绑订数据

                setAttribute,getAttribute,removeAttribute

                注:

                    将数据绑订到上下文,可以随时访问。在满足使用条件的情况下,优先使用生命周期短的(request < session < 上下文)。

                    request对象上绑定的数据只有同一个请求所涉及的各个web组件可以共享,比如:

                        一个servlet将数据绑定到request,然后转发到一个jsp。

                        请求闲交给过滤器来处理,然后调用servlet。
                    session对象上绑定的数据是同一个会话所涉及的各个web组件可以共享。

                    servletContext绑定的数据是公开的,谁都可以访问,而且随时可以访问。

            b.访问全局的初始化参数

                step1,配置

                    <context-param>

                        <param-name>...</param-name>

                        <param-value>...</param-value>

                    </context-param>

                step2,读取

                    //    可以被同一个应用中所有的servlet,filter共享。

                    String getInitParameter(String paramName);

        4)依据逻辑路径(path)获得实际部署时的物理路径。

            String getRealPath(String path);

    (3)如何写一个监听器

        step1,写一个java类,实现相应的监听器接口。

        注:

            要依据监听的事件类型来选择合适的接口。

        比如,要监听session的创建和销毁,需要实现HttpSessionListener接口。

        step2,在接口方法当中,实现监听处理逻辑。

        step3,配置(web.xml)。

        例子:

                统计在线人数,

    (4)监听器接口

        HttpSessionListener(监听session)、ServletContextListener(监听上下文)

转载地址:http://czrws.baihongyu.com/

你可能感兴趣的文章
对于模拟交易所引发的思考
查看>>
高频交易的几种策略
查看>>
量化策略回测TRIXKDJ
查看>>
量化策略回测唐安奇通道
查看>>
CTA策略如何过滤部分震荡行情?
查看>>
量化策略回测DualThrust
查看>>
量化策略回测BoolC
查看>>
量化策略回测DCCV2
查看>>
mongodb查询优化
查看>>
五步git操作搞定Github中fork的项目与原作者同步
查看>>
git 删除远程分支
查看>>
删远端分支报错remote refs do not exist或git: refusing to delete the current branch解决方法
查看>>
python multiprocessing遇到Can’t pickle instancemethod问题
查看>>
APP真机测试及发布
查看>>
通知机制 (Notifications)
查看>>
10 Things You Need To Know About Cocoa Auto Layout
查看>>
一个异步网络请求的坑:关于NSURLConnection和NSRunLoopCommonModes
查看>>
iOS 如何放大按钮点击热区
查看>>
ios设备唯一标识获取策略
查看>>
获取推送通知的DeviceToken
查看>>