首页 / JAVA / JavaWeb系列之:监听器
JavaWeb系列之:监听器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaWeb系列之:监听器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4387字,纯文字阅读大概需要7分钟。
内容图文
![JavaWeb系列之:监听器](/upload/InfoBanner/zyjiaocheng/828/17b1edaa87cf443c93655fca70fa325d.jpg)
一,监听器定义
指专门用于对其他对象身上发生的 事件 或 状态改变 进行监听和相应处理的对象,当被监视对象发生变化时,立即采取相应的行动。
Web监听器可以监听客户端的请求,服务端的操作。可以监听的对象有:
ServletContex ---->作用域:application(上下文对象,由容器创建和初始化,范围是整个应用,并且这个应用只有一个application存在,当web服 务器关闭时,就会把application对象销毁)。
HttpSession ------>作用域:session(session是一种保存上下文的机制,针对每一个会话。放在服务器端通过sessionId来区分的,当浏览器和服 务器结束会话后,会把session销毁)
ServletRequest ----->作用域:request(request对象是当客户发送请求时,容器就会创建一个ServletRequest对象,用来封装请求数据,同时会 创建一个ServletResponse对象来封装响应数据。在访问结束请求之后,request对象就会被销毁)
Web监听器主要用来监听这三个对象的创建,销毁,以及对象的属性的变化。
Web监听器总结:
web监听器是Servlet规范中定义的一种特殊类
用来监听ServletContext,HttpSession,ServletRequest等域对象的创建和销毁事件
用来监听域对象的属性发生修改的事件
可以在事件发生之前,发生之后做一些必要的处理
二,用途
1,统计在线人数和在线用户
2,系统启动时加载初始化信息(包括缓存,一些定时器信息,数据库连接等)
3,访问网站访问量
4,和Spring结合
三,实现一个监听器
1,步骤:
创建一个类,实现监听器接口
配置web.xml进行注册
2,代码:
public class FirstListener implements ServletContextListener { public void contextInitialized(ServletContextEvent servletcontextevent) { System.out.println("contextInitialized "); } public void contextDestroyed(ServletContextEvent servletcontextevent) { System.out.println("contextDestroyed"); } }
web.xml配置监听器
<listener> <listener-class>com.iamazing.listener.FirstListener</listener-class> </listener>
web容器启动时执行:contextInitialized(ServletContextEvent servletcontextevent)
web容器销毁时执行:contextDestroyed(ServletContextEvent servletcontextevent)
四,监听器的启动顺序
一个web.xml下有多个监听器时,注册顺序和加载顺序是按照web.xml中的配置顺序。
监听器,过滤器,Servlet的加载(启动)顺序: 监听器 》 过滤器 》 Servlet
五,监听器的分类
1,按监听的对象划分:
用于监听应用程序环境对象(ServletContext)的事件监听器
用于监听用户会话对象(HttpSession)的事件监听器
用于监听请求消息对象(ServletRequest)的事件监听器
2,按监听的事件划分
监听域对象自身的创建和销毁的事件监听器
监听域对象中的属性的增加和删除的事件监听器
监听绑定到HttpSession域对象中的某个对象的状态的事件监听器
3,监听域对象自身的创建和销毁的事件监听器
3.1,域对象有三个:ServletContext,HttpSession,ServletRequest。
在Servlet规范中,定义了三个接口,用来监听这三个域对象的创建事件和销毁事件
ServletContextListener, HttpSessionListener, ServletRequestListener
4,ServletContext
一个web项目中可以定义多个ServletContextListener,但是只有一个ServletContext对象。
4.1,在ServletContextListener中有两个事件处理方法:
contextInitialized方法:---->ServletContext创建时调用
public void contextInitialized(ServletContextEvent sce):ServletContextEvent对象可以获取ServletContext对象,初始化的参数
ContextDestoryed方法:----->ServletContex销毁时调用
public void contextDestoryed(ServletContextEvent sce)
4.2,主要用途
定时器
全局属性对象(比如:创建数据库连接)
4.3,代码:
public class FirstListener implements ServletContextListener { public void contextInitialized(ServletContextEvent servletcontextevent) { String initParam = servletcontextevent.getServletContext().getInitParameter("initParam"); System.out.println("contextInitialized : initParam = "+initParam); } public void contextDestroyed(ServletContextEvent servletcontextevent) { System.out.println("contextDestroyed"); } }
<context-param> <param-name>initParam</param-name> <param-value>hello</param-value> </context-param> <listener> <listener-class>com.amazing.listener.FirstListener</listener-class> </listener>
5,HttpSession
一个web应用中可以有多个HttpSession对象
5.1,HttpSessionListener有两个处理事件方法
sessionCreated方法:------>session创建时调用
public void sessionCreated(HttpSessionEvent se)
sessionDestoryed方法:----->sesssion销毁时调用
public void sessionDestoryed(HttpSessionEvent se)
5.2,用途、
统计在线人数
记录访问日志
5.3,代码:
public class MyHttpSessionListener implements HttpSessionListener { public void sessionCreated(HttpSessionEvent httpsessionevent) { System.out.println("sessionCreated"); } public void sessionDestroyed(HttpSessionEvent httpsessionevent) { System.out.println("sessionDestroyed"); } }
在web.xml中注册监听器
内容总结
以上是互联网集市为您收集整理的JavaWeb系列之:监听器全部内容,希望文章能够帮你解决JavaWeb系列之:监听器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。