我是靠谱客的博主 贪玩黄豆,最近开发中收集的这篇文章主要介绍java listers怎么用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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怎么用的详细内容,更多请关注靠谱客其它相关文章!

最后

以上就是贪玩黄豆为你收集整理的java listers怎么用的全部内容,希望文章能够帮你解决java listers怎么用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部