/**
* 监听器的使用:
* 作用:
* 监听作用域对象:request、session、application的创建、销毁和内容的改变。
* 使用:
* 创建了一个是实现了指定接口的Java类
* 监听request----->ServletRequestListener 监听request对象的创建、销毁
* requestDestroyed(ServletRequestEvent sre)//销毁
* requestInitialized(ServletRequestEvent sre)//创建
* 注意:形参可以获取监听的request对象
* sre.getServletRequest()
* 监听request----->ServletRequestAttributeListener 监听request作用域数据的变更。
* attributeAdded(ServletRequestAttributeEvent srae) //本次新增
* attributeRemoved(ServletRequestAttributeEvent srae) //本次删除
* attributeReplaced(ServletRequestAttributeEvent srae) //本次修改
* 注意:形成可以获取被监听的数据
* srae.getName() 获取监听数据的键
* srae.getValue() 获取监听数据的值
* 监听session----->HttpSessionListener 监听session的创建、销毁
* sessionCreated(HttpSessionEvent se) //创建
* sessionDestroyed(HttpSessionEvent se) //销毁
* 注意:形参可以获取到被监听的session对象
* se.getSession();
* 监听session-----> HttpSessionAttributeListener 监听session数据的变更
* attributeAdded(HttpSessionBindingEvent event)
* attributeRemoved(HttpSessionBindingEvent event)
* attributeReplaced(HttpSessionBindingEvent event)
* 注意:形参可以获取被监听的数据
* event.getName() //获取监听数据的键名
* event.getValue() //获取监听的数据的值
* 监听application----->ServletContextListener 监听application对象的初始化和销毁
* contextDestroyed(ServletContextEvent sce) //销毁 服务器关闭
* contextInitialized(ServletContextEvent sce) //初始化 服务器启动
* 注意:形参可以获取当前applicaion对象
* sce.getServletContext();
* 监听application----->ServletContextAttributeListener 监听application的数据变更
* attributeAdded(ServletContextAttributeEvent event)
* attributeRemoved(ServletContextAttributeEvent event)
* attributeReplaced(ServletContextAttributeEvent event)
* 注意:形参可以获取当前的监听的数据
* event.getName() //获取数据的键名
* event.getValue() //获取数据的值
* 在web.xml中配置监听器类
* !-- 配置监听器 -->
* <listener>
* <listener-class>com.xxx.listener.MyListener</listener-class>
* </listener>
* 案例:
* 统计当前在线人数
* 统计网页浏览器人数等
*
*/