监听器-Listener浅谈及简单实现

web监听器是一种Servlet中的特殊的类,它们能帮助开发者监听web中的特定事件,比如ServletContext,HttpSession,ServletRequest的创建和销毁等。可以在某些动作前后增加处理,实现监控。
Servlet中提供了8个监听器。

思路扩展:

  1. 既然Listener能够监听ServletContext,那麽就能够监听到项目的创建和销毁。当监听到项目启动时,可以做一些项目的初始化,降低运行期间的服务器压力,加快响应速度等;同样在监听到项目销毁时也能够做一些事情,保证项目关闭的干净利索。ServletContextListenner用来监听ServletContext对象的创建和销毁的。
  2. HttpSession的创建和销毁,那麽就能够统计在线总人数。方法是:HttpSessionListener可以用来监听session对象的创建和销毁
    的。所以可以在HttpSessionListener中的监听session对象创建和销毁的方法中控制在线人数的加减。
    3.ServletRequest的创建和销毁,这个情况就很多了,就不再过多介绍了。只要实现ServletRequestListener中的两个方法即可。

下面对这八种监听器进行介绍:
奥,对喽!文字看的烦躁了吧,这回上表格,让你一目了然!

一类:监听三个域对象的创建和销毁的监听器

被监听对象对应的监听器
ServletContextServletContextListener
HttpSessionHttpSessionListener
HttpServletRequestServletRequestListener

二类:监听三个域对象的属性变更的监听器.(属性的添加,移除和替换)

被监听对象对应的监听器
ServletContextServletContextAttributeListener
HttpServletRequestServletRequestAttributeListener
HttpSessionHttpSessionAttributeListener

三类:监听HttpSession对象中的JavaBean的状态的改变.(绑定,解除绑定,钝化和活化)2个

被监听对象对应的监听器监听的操作
HttpSessionHttpSessionBindingListener绑定,解除绑定
HttpSessionHttpSessionActivationListener钝化和活化

介绍完事,说下具体怎末使用吧!
不用想肯定又是配置文件和注解两种方法

方法一:配置文件

web.xml配置如下:

<listener>
 <listenerclass>com.kangaroo.listener.MyServletContextListener</listener‐class>
</listener>

java代码

public class MyServletContextListener implements ServletContextListener{
    @Override
    /**
     * 项目启动时创建上下文对象
     * 处理创建的响应行为(方法)
     */
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        System.out.println("监听到 上下文对象创建啦...");
    }

    @Override
    /**
     * 项目关闭时,或项目从服务器上移除时
     * 处理销毁的响应行为(方法)
     */
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        System.out.println("监听到 上下文对象销毁啦...");
    }
}

方法二:注解

@WebListener
public class MyServletContextListener implements ServletContextListener{
    @Override
    /**
     * 项目启动时创建上下文对象
     * 处理创建的响应行为(方法)
     */
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        System.out.println("监听到 上下文对象创建拉...");
    }

    @Override
    /**
     * 项目关闭时,或项目从服务器上移除时
     * 处理销毁的响应行为(方法)
     */
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        System.out.println("监听到 上下文对象销毁拉...");

    }
}
两种方法推荐试用第二种,只需在监听类上加上@WebListener即可,简单容易理解

其他的监听器大致都这样,我这里就是抛砖引玉,有码神可以交个朋友,下方评论区见。累了今天就到这里吧!!!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值