java web学习:三大组件 Listener基础
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java web学习:三大组件 Listener基础,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2994字,纯文字阅读大概需要5分钟。
内容图文
![java web学习:三大组件 Listener基础](/upload/InfoBanner/zyjiaocheng/640/1151d3ddb44341b4ae086d33d2119d80.jpg)
1、概念
事件源:被监听的对象 。监听器主要监听三个域对象 ,分别是 request session servletContext
监听器:用来监听某个对象状态变化的组件
响应行为:监听器监听的对象相应的状态发生变化时出发的动作。
2、Listener分类
在java web中,监听器的种类比较多,可以按照事件源(监听的对象)进行分类,也可以按照监听的动作进行分类。这里按照监听的动作进行分类。
(1)监听域对象自身创建和销毁的监听器:
①ServletContextListener接口 监听 SercvletContext对象
②HttpSessionListener接口 监听 HttpSession对象
③ServletRequestListener接口 监听 ServletRequest对象
(2)监听域对象中的属性的增加、修改和删除的事件监听器
⑤HttpSessionAttributeListener接口 监听 HttpSession对象属性
⑥ServletRequestAttributeListener接口 监听 ServletRequest对象属性
(3)监听绑定到 HttpSession 域中某个对象的状态的事件监听器
⑦HttpSessionBindingListener接口 监听 实现了HttpSessionBindingListener接口的对象的session绑定和解除
⑧HttpSessionActivationListener接口 (实现会话的持久化)
3、例子
(1)定义监听器
package com.web.listener; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class MyListener implements ServletContextListener { static { System.out.println("MyListener加载了"); } public MyListener() { System.out.println("MyListener实例化了"); } public void contextDestroyed(ServletContextEvent sce) { } public void contextInitialized(ServletContextEvent sce) { sce.getServletContext(); System.out.println("ServletContext创建开始"); } }
package com.web.listener; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; public class MySessionListener implements HttpSessionListener { static { System.out.println("MySessionListener加载了"); } public MySessionListener() { System.out.println("MySessionListener实例化了"); } public void sessionCreated(HttpSessionEvent se) { } public void sessionDestroyed(HttpSessionEvent se) { } }
package com.web.listener; import javax.servlet.ServletRequestEvent; import javax.servlet.ServletRequestListener; public class MyRequestListener implements ServletRequestListener{ static { System.out.println("MyRequestListener加载了"); } public MyRequestListener(){ System.out.println("MyRequestListener实例化了"); } public void requestDestroyed (ServletRequestEvent sre) { } public void requestInitialized (ServletRequestEvent sre) {} }
(2)注册监听器
<!-- 注册监听器 --> <listener> <listener-class>com.web.listener.MyRequestListener</listener-class> </listener> <listener> <listener-class>com.web.listener.MySessionListener</listener-class> </listener> <listener> <listener-class>com.web.listener.MyListener</listener-class> </listener>
(3)执行结果
监听器的加载顺序时web.xml中配置的顺序一直
4、生命周期
监听器在容器启动时加载并且实例化,容器关闭时销毁。
5、监听器,过滤器,Servlet三大组件的加载顺序
监听器与过滤器都是在web容器启动时就加载,但是监听器加载的更早。Servlet默认时在第一次访问时加载,通过<load-on-startup>标签可以配置成web容器启动时就加载,但是Servlet加载的时机是三大组件中最晚的。
所以三大组件的加载顺序是:Listener ->Filter->Servlet
内容总结
以上是互联网集市为您收集整理的java web学习:三大组件 Listener基础全部内容,希望文章能够帮你解决java web学习:三大组件 Listener基础所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。