关闭

监听器详解

163人阅读 评论(0) 收藏 举报
分类:

监听器详解


    (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)。

        例子:

                统计在线人数,链接:http://blog.csdn.net/u011637069/article/details/49905891


    (4)监听器接口

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




0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:178935次
    • 积分:5161
    • 等级:
    • 排名:第5540名
    • 原创:351篇
    • 转载:36篇
    • 译文:0篇
    • 评论:16条
    文章分类