首页 > 编程语言 >java EE开发之Servlet第四课:监听器(Listener)

java EE开发之Servlet第四课:监听器(Listener)

时间:2023-02-06 17:23:41浏览次数:53  
标签:第四课 调用 java 对象 void 监听 监听器 public

 

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被创建");
}

 

配置:

<listener>

<listener-class>com.accp.RequestListener</listener-class>
</listener>

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


/**
* 当session被创建的时候被调用,产生一个事件对象HttpSessionEvent*/
public void sessionCreated(HttpSessionEvent se) { }
/**
* 当session被销毁的时候被调用,产生一个事件对象HttpSessionEvent */
public void sessionCreated(HttpSessionEvent se) { }

 

配置:

<listener>
<listener-class>com.accp.SessiontListener</listener-class>
</listener>

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

/**
* 当ServletContext被销毁的时候,容器就会自动去
* 调用这个监听器的contextDestroyed,产生一个事件对象ServletContextEvent
*/
public void contextDestroyed(ServletContextEvent sce) { }

 

/**
* 当ServletContext被创建的时候,容器就会自动去
* 调用这个监听器的contextDestroyed,产生一个事件对象ServletContextEvent*/
public void contextInitialized(ServletContextEvent sce) { }

 

配置:

<listener>
<listener-class>com.accp.ContextListener</listener-class>
</listener>

(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,对象,void,监听,监听器,public
From: https://www.cnblogs.com/xmxit/p/17096026.html

相关文章

  • Spring16 - 回顾 Java反射 reflect
    回顾Java反射Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对......
  • Java Date与时间戳的转换问题
    Java中String与Date格式之间的转换-NemoWang-博客园(cnblogs.com)主要是String类型的时间,需要使用DateFormat来进行设置转换的格式,调用fmt的parse方法进行将时间转为......
  • JAVA中的时区设置问题
    通过对日常环境和生产环境进行对比发现,变更时间传参之后,在后端java程序转换的日期不统一,对查询造成影响。JAVA中的时区设置第一种方式、通过代码指定。finalTimeZonet......
  • Java中数组的使用
    Java中数组的使用介绍Java中数组的基本使用及需要注意的细节,对Java虚拟机的内存划分及数组在内存中的存储进行分析。Author:MsuenbDate:2023-02-06数组的概念数......
  • Javascript(es2016) import和require用法和区别
    写个简单js文件,假设名字为:lib.js。假设内容如下:exportconstsqrt=Math.sqrt;exportfunctionsquare(x){returnx*x;}exportfunctiond......
  • [JavaScript]eval
    eval()eval() 函数会将传入的字符串当做JavaScript代码进行执行。参数string一个表示JavaScript表达式、语句或一系列语句的字符串。表达式可以包含变量与已存......
  • Java8中匹配两个list的数据(string的list与对象list的属性求差集)
    场景Java8新特性-Stream对集合进行操作的常用API:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/126070657上面介绍常用api的使用,下面记录一个常用场景的......
  • Java 日期类 处理
    原始方案:SimpleDateFormatsdf=newSimpleDateFormat("YYYY-MM-DD");//线程不安全类,最好不要用了,替代方案:DateTimeFormatterdtf=DateTimeFormatter.ofPattern("YY......
  • [JavaScript]变量提升
    什么是变量提升?简单来说,就是JavaScript在执行程序时,会先把变量声明这一操作提前。换句话来说,就是不会在程序执行过程中声明变量。例子:functionfn(){console.log(nam......
  • java8 list取出重复值
    @Testpublicvoidtest10(){//根据device_code去重,取出重复值List<Employee>emps=newArrayList<>();List<String>dupList=emps.stream().colle......