JavaWeb(过滤器&监听器)

1. 监听Servlet :   Listener
            主要功能是负责监听Web的各种操作,当相关的事件触发后将产生事件,并对事件进行处理。

2.监听器分为3种:
   
application监听器
    session监听器
    request监听器

application监听器

《如图所示&代码演示》

需要实现:ServletContextListener(常用)

然后重写方法  容器启动时调用

//容器启动时调用
public void contextInitialized(ServletContextEvent event){
    
  }


//容器消毁时调用
  public void contextDestroyed(ServletContextEvent event){
    
  }

 Session监听器

实现:HttpSessionListener  (偶尔用)
 重写:

《如图所示&代码演示》

//session创建时调用
  public void sessionCreated(HttpSessionEvent event){

  }

  //session销毁时调用
  public void sessionDestroyed(HttpSessionEvent event){

  }

HttpSessionEvent事件方法:
    .getSession()    //取得当前的session

实现:HttpSessionAttributeListener (不用,性能差)
  重写:

HttpSessionBindingEvent事件方法:
    .getSession()    //取得session
    .getName()    //取得属性的名称
    .getValue()    //取得属性的内容

//增加属性时触发
  public void attributeAdded(HttpSessionBindingEvent event){
	
  }

  //删除属性时触发
  public void attributeRemoved(HttpSessionBindingEvent event){
	
  }

  //替换属性时触发
  public void attributeReplaced(HttpSessionBindingEvent event){
	
  }

request监听器 

 实现:ServletRequestListener (不用,性能差)
  重写:

ServletRequestEvent事件方法:
    .getServletRequest()    //取得ServletRequest对象
    .getServletContext()    //取得ServletContext对象

//请求开始时调用
  public requestInitialized(ServletRequestEvent event){

  }

  //请求结束时调用
  public requestDestroyed(ServletRequestEvent event){

  }

补充:

为什么说session监听器和request监听器一般都不用?
                因为以request监听器为例,如果采用request监听,那就意味着每次请求都要触发一次监听,这大大降低了程序的效率,因此很少用。

web.xml:

        在tomcat执行时被加载。
         正常关闭时被销毁。

 <listener>
  	<listener-class>com.zking.listener.CountRSListener</listener-class>
  </listener>

《实例演示》统计在线人数

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值