1.什么是Listener

监听器就像老板的秘书,那个秘书就是活的监听器,时时监听着老板,当老板发生一些事情的时候,秘书就会有相应的措施。比如老板口渴了,秘书就会去端茶;比如老板要提提神,秘书就会泡一杯咖啡等。

2.介绍java的几种常用的监听器

(1)实现ServletRequestListener接口,监听request(需要在web.xml中配置)

/**

* 当request对象被销毁的时候,容器就会自动去

* 调用这个监听器的requestDestroyed,产生一个事件对象ServletRequestEvent

*/

public void requestDestroyed(ServletRequestEvent sre) {

System.out.println("request被销毁");

}

/**

* 当request对象被创建的时候,容器就会自动去

* 调用这个监听器的requestInitialized,产生一个事件对象ServletRequestEvent*/

public void requestInitialized(ServletRequestEvent sre) {

System.out.println("request被创建");

}

配置:

com.accp.RequestListener

(2)实现HttpSessionListener接口,监听session (需要在web.xml中配置)

/**

* 当session被创建的时候被调用,产生一个事件对象HttpSessionEvent*/

public void sessionCreated(HttpSessionEvent se) {  }

/**

* 当session被销毁的时候被调用,产生一个事件对象HttpSessionEvent */

public void sessionCreated(HttpSessionEvent se) {  }

配置:

com.accp.SessiontListener

(3)实现ServletContextListener接口,监听ServletContext(需要在web.xml中配置)

/**

* 当ServletContext被销毁的时候,容器就会自动去

* 调用这个监听器的contextDestroyed,产生一个事件对象ServletContextEvent

*/

public void contextDestroyed(ServletContextEvent sce) {  }

/**

* 当ServletContext被创建的时候,容器就会自动去

* 调用这个监听器的contextDestroyed,产生一个事件对象ServletContextEvent*/

public void contextInitialized(ServletContextEvent sce) {  }

配置:

com.accp.ContextListener

(4)实现SessionBindingListener接口,监听Session设值和取值(不需要在web.xml中配置)

/**

* 当向Session里面设值的时候,容器调用此方法,生产一个事件对象  */

public void valueBound(HttpSessionBindingEvent event) {   }

/**

* 当向Session里面移除值的时候,容器调用此方法,生产一个事件对象  */

public void valueUnbound(HttpSessionBindingEvent event) {  }

哪个类的对象需要监听,就让那个类实现该接口

3.应用

应用一

使用 ServletRequestListener ,HttpSessionListener , ServletContextListener

统计访问量,在线人数,请求次数

应用二

使用SessionBindingListener做购物车:

HttpSessionBindingListener只监听制定的session

HttpSessionListener:监听处理所有的session

java ee监听器编程,java EE开发之Servlet第四课:监听器(Listener)相关推荐

  1. java EE开发之Servlet第八课:MVC模式 (基本理解)

    ##1,为什么需要MVC模式? 为什么需要MVC模式,以前简单的JSP页面处理不好吗?MVC有什么好处呢? 答:MVC就是常说的: 模型(Model):POJO(Plain Old Java Obje ...

  2. Java服务器接口快速开发之Servlet详细教程

    今日科技快讯 7月14日晚间消息,据乐视网刚刚披露的业绩预告,公司预计2017年上半年亏损6.37亿至6.42亿元,上年同期盈利2.84亿元.报告期内,乐视网资产减值损失计提规模较大约为2.3亿元,其 ...

  3. java hql多条件查询_JSP 开发之hibernate的hql查询多对多查询

    JSP 开发之hibernate的hql查询多对多查询 在hibernate的hql查询中,假如说分组信息与试题是多对多关系,那么我们要在hql查询中对含有多个分组信息的试题都要查询出来.并同时查询出 ...

  4. java 加密解密编程,java 加密解密容易实现

    当前位置:我的异常网» 编程 » java 加密解密容易实现 java 加密解密容易实现 www.myexceptions.net  网友分享于:2013-10-27  浏览:3次 java 加密解密 ...

  5. java 注解妙用_框架开发之Java注解的妙用

    PS:如果你还不会使用注解,你肯定不好意思对别人说你学过Spring,你学过Mybatis,因为它们用了大量的注解.可见注解在开发领域已经使用的非常广泛了. 配图.jpg 注解的好处: 1.能够读懂别 ...

  6. Java开发之ServLet详解

    一.什么是ServLet? serverLet是javaEE中运行于服务器端的,用于接收和响应HTTP协议的请求的程序. 二.ServLet的三种实现方式 1.实现ServLet接口 步骤: (1)实 ...

  7. java开发之ServLet注解、自定义容器方式详解

    目录 一.为什么使用注解方式和自定义容器方式 二.注解方式步骤 1.创建javaEE8版本的web项目 2.创建一个类MyServlet继承HTTPServlet类并重写doGet()和doPost( ...

  8. Java高级应用开发之Servlet

    学习路径: 1.Servlet简介 2.Servlet基础 3.表单处理 4.请求头信息 5.响应头信息 6.cookie 7.session 8.scope: Servlet Context 全局变 ...

  9. Java多线程并发编程--Java并发包(JUC)

    Java多线程并发–Java并发包(JUC) 前言 前一篇文章中,笔者已经介绍了Java多线程的一些基础知识,但是想要成为一名中高级Java程序员还必须懂得Java并发包(JUC)的知识点,而且JUC ...

最新文章

  1. safari快捷图标不见了_Win7桌面图标不见了怎么办?附解决办法
  2. Python全栈开发:RabbitMQ/Redis/Memcache/SQLAlchemy
  3. 类的实例方法静态方法类方法属性方法属性
  4. android8.1启动前台服务,Android - 保活(1)前台服务保活
  5. 《Python Cookbook 3rd》笔记(4.2):代理迭代
  6. Android之Toolbar的三个问题:修改左边箭头颜色、怎样修改右边以及子activity中的toolbar添加返回箭头...
  7. Redhat7.2下编译rpm包的形式安装openvswitch
  8. Qt5学习笔记之串口助手一:基本界面设计
  9. Texar安装、Textgenrnn安装
  10. 兄dei,来封装一个自定义事件玩玩
  11. 自动创建日期文件并写入数据python脚本
  12. nachos 5.0j(java版)学习笔记一:环境搭建
  13. 使用photoshop批量处理大量照片(1000张以上)方法介绍
  14. 典型微型计算机控制系统的实例,微型计算机控制技术
  15. Tecplot360 作图经验
  16. 在windows下编译gmplib并使用vs2010成功调用
  17. 大数据入门教程系列之Hbase安装(伪分布式)
  18. php 微信 40125,微信请求发生错误!错误代码:40125
  19. 站内优化第二篇:XML 站点地图的全面解析
  20. 网络原理IP协议/以太网

热门文章

  1. Visual Studio现可使用EditorConfig
  2. ASP.NET Core 开发-中间件(Middleware)
  3. 高并发下防止库存超卖解决方案
  4. python求非线性优化问题_用python优化非线性函数
  5. 【ArcGIS微课1000例】0020:关于ArcCatalog,你知道多少?
  6. C#趣味程序----分数之和
  7. SQL Server 2005更改当前数据库的所有者
  8. IOS之学习笔记十五(协议和委托的使用)
  9. 在n个火柴里面拿3根出来拼接成最大三角形的周长
  10. 每日一笑 | 为什么Python比Java更受欢迎?