• 技术文章 >Java >java教程

    java listers怎么用

    (*-*)浩(*-*)浩2020-09-17 16:52:05原创1078

    Java listers的使用步骤:1、通过实现具体接口创建实现类(可实现多个监听器接口)。2、直接用@WebListener注解修饰实现类,配置实现类成为监听器;或者通过web.xml方式配置实现类成为监听器。

    Java listers是监听器的意思,用于监听Web应用的内部事件的实现类。可以监听用户session的开始与结束,用户请求的到达等等,当事件发生时,会回调监听器的内部方法。

    使用Listener步骤

    通过实现具体接口创建实现类(可实现多个监听器接口)

    配置实现类成为监听器,有两种配置方式:

    直接用@WebListener注解修饰实现类

    通过web.xml方式配置,代码如下:

    <listener>
        <listener-class>com.zrgk.listener.MyListener</lisener-class>
    </listener>

    常用Web事件监听器接口

    1. ServletContextListener

    该接口用于监听Web应用的启动与关闭

    该接口的两个方法:

    contextInitialized(ServletContextEvent event); // 启动web应用时调用
    contextDestroyed(ServletContextEvent event); // 关闭web应用时调用

    如何获得application对象:

    ServletContext application = event.getServletContext();

    示例:

    @WebListener
    public class MyServetContextListener implements ServletContextListener{
    
        //web应用关闭时调用该方法
        @Override
        public void contextDestroyed(ServletContextEvent event) {
            ServletContext application = event.getServletContext();
            String userName = application.getInitParameter("userName"); 
            System.out.println("关闭web应用的用户名字为:"+userName);
        }
    
        //web应用启动时调用该方法
        @Override
        public void contextInitialized(ServletContextEvent event) {
            ServletContext application = event.getServletContext();
            String userName = application.getInitParameter("userName");     
            System.out.println("启动web应用的用户名字为:"+userName);
        }
    
    }

    2. ServletContextAttributeListener

    该接口用于监听ServletContext范围(application)内属性的改变。

    该接口的两个方法:

    attributeAdded(ServletContextAttributeEvent event);//当把一个属性存进application时触发
    attributeRemoved(ServletContextAttributeEvent event);//当把一个属性从application删除时触发
    attributeReplaced(ServletContextAttributeEvent event);//当替换application内的某个属性值时触发

    如何获得application对象:

    ServletContext application = event.getServletContext();

    示例:

    @WebListener
    public class MyServletContextAttributeListener implements ServletContextAttributeListener{
    
        //向application范围内添加一个属性时触发
        @Override
        public void attributeAdded(ServletContextAttributeEvent event) {
            String name = event.getName();//向application范围添加的属性名
            Object val = event.getValue();      //向application添加的属性对应的属性值
            System.out.println("向application范围内添加了属性名为:"+name+",属性值为:"+val+"的属性");
    
        }
    
        //删除属性时触发
        @Override
        public void attributeRemoved(ServletContextAttributeEvent event) {
            // ...      
        }
    
        //替换属性值时触发
        @Override
        public void attributeReplaced(ServletContextAttributeEvent event) {
            // ...      
        }
    
    }

    以上就是java listers怎么用的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Java
    上一篇:java怎么添加图片 下一篇:什么是java单例模式?
    千万级数据并发解决方案

    相关文章推荐

    • javaee是指什么?• 初学java推荐看什么书?• java me是什么?• java中的maven是什么
    1/1

    PHP中文网