首页 / JAVA / javaWeb三大组件之监听器
javaWeb三大组件之监听器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javaWeb三大组件之监听器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5649字,纯文字阅读大概需要9分钟。
内容图文
![javaWeb三大组件之监听器](/upload/InfoBanner/zyjiaocheng/683/4277e3c3b1b24da691b4c2e3bbffba90.jpg)
javaWeb三大组件:
Servlet
Listener
Filter
本篇博客主要讲Listener监听器。
监听器:
- 监听器是一个接口,其具体内容根据自己的需求自己实现。
- 监听器中的方法会在特殊事件发生时被调用
- 它他需要注册
javaWeb中的监听器简介
在JavaWeb被监听的事件源为:ServletContext、HttpSession、ServletRequest,即三大域对象。
监听域对象“创建”与“销毁”的监听器;
监听域对象“操作域属性”的监听器;
监听HttpSession的监听器。
-
ServletContext
-
声明周期监听:ServletContextListener,其有两个方法,一个在出生时调用,一个在死亡是调用。
void contextInitizlized9(ServletContextEvent sce):创建ServletContext时调用
void ContextDestoryed(ServletContextEvent sce):销毁Servletcontext时调用 -
属性监听:ServletContextAttributeListener,它有三个方法,一个在添加属性时调用,一个在替换属性时调用,最后一个在移除属性时调用
void attrivuteAdded(ServletContextAttributeEvent event) :添加属性时调用
void attributeReplaced(ServletContextAttributeEvent event):替换属性时调用
void attributeRemoved(ServletContextAttributeEvent event):移除属性时调用
-
-
HttpSession
-
生命周期监听:HttpSessionListener,它有两个方法,一个在出生时调用,一个在死亡时调用
void sessionCreated(HttpSessionEvent se):创建session时调用
void sessionDestoryed(HttpSessionEvent se):销毁session时调用 -
属性监听:HttpSessionAttributeListener,三个方法,分别是添加属性、删除属性、替换属性时调用
void attributeAdded(HttpSessionBindingEvent event):添加属性时调用
void attributeReplaced(HttpSessionBindingEvent event):替换属性时调用
void attributeRemoved(HttpSessionBindingEvent event):移除属性
-
-
ServletRequest
- 生命周期:ServletRequestListener,具有两个方法,一个是出生时调用,一个是死亡时调用;
void requestInitialized(ServletRequestEvent sre):创建request时
void requestDestroyed(ServletRequestEvent sre):销毁request时- 属性监听
void attributeAdded(ServletRequestAttributeEvent srae):添加属性时
void attributeReplaced(ServletRequestAttributeEvent srae):替换属性时
void attributeRemoved(ServletRequestAttributeEvent srae):移除属性时
javaWeb中完成编写监听器
① 写一个监听器类:要求是必须实现某个监听接口
② 在web.xml中配置来完成注册
事件对象的介绍
ServletContextEvent: ServletContext getServletContext()
HttpSessionEvent: HttpSession getSession()
ServletRequest:
①: ServletContext getServletContext()
②: ServletReques getServletRequest()
ServletContextAttributeEvent:
》String getName():获取当前操作的属性名;
》Object getValue():获取当前操作的属性值;
》ServletContext getServletContext():获取ServletContext对象。
HttpSessionBindingEvent
》String getName():获取当前操作的属性名;
》Object getValue():获取当前操作的属性值;
》HttpSession getSession():获取当前操作的session对象。
ServletRequestAttributeEvent
》Object getValue():获取当前操作的属性值;
》ServletContext getServletContext():获取ServletContext对象;
》ServletRequest getServletRequest():获取当前操作的ServletRequest对象。
public class MyServletContextListener implements ServletContextListener {
public void contextDestroyed(ServletContextEvent evt) {
System.out.println("销毁ServletContext对象");
}
public void contextInitialized(ServletContextEvent evt) {
System.out.println("创建ServletContext对象");
}
}
public class MyHttpSessionListener implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent evt) {
System.out.println("创建session对象");
}
public void sessionDestroyed(HttpSessionEvent evt) {
System.out.println("销毁session对象");
}
}
public class MyServletRequestListener implements ServletRequestListener {
public void requestDestroyed(ServletRequestEvent evt) {
System.out.println("销毁request对象");
}
public void requestInitialized(ServletRequestEvent evt) {
System.out.println("创建request对象");
}
}
web.xml中的配置
<listener>
<listener-class>MyServletContextListener监听器的全类名</listener-class>
</listener>
<listener>
<listener-class>MyHttpSessionListener监听器的全类名</listener-class>
</listener>
<listener>
<listener-class>MyServletRequestListener监听器的全类名</listener-class>
</listener>
<session-config>
<!--为了看出session销毁的过程,把session过期时间设置为1秒-->
<session-timeout>1</session-timeout>
</session-config>
属性监听示例:创建一个类,同时实现ServletContextAttributeListener,ServletRequestAttributeListener,HttpSessionAttributeListener接口
public class MyListener implements ServletContextAttributeListener,
ServletRequestAttributeListener, HttpSessionAttributeListener {
public void attributeAdded(HttpSessionBindingEvent evt) {
System.out.println("向session中添加属性:" + evt.getName() + "=" + evt.getValue());
}
public void attributeRemoved(HttpSessionBindingEvent evt) {
System.out.println("从session中移除属性:" + evt.getName() + "=" + evt.getValue());
}
public void attributeReplaced(HttpSessionBindingEvent evt) {
System.out.println("修改session中的属性:" + evt.getName() + "=" + evt.getValue());
}
public void attributeAdded(ServletRequestAttributeEvent evt) {
System.out.println("向request中添加属性:" + evt.getName() + "=" + evt.getValue());
}
public void attributeRemoved(ServletRequestAttributeEvent evt) {
System.out.println("从request中移除属性:" + evt.getName() + "=" + evt.getValue());
}
public void attributeReplaced(ServletRequestAttributeEvent evt) {
System.out.println("修改request中的属性:" + evt.getName() + "=" + evt.getValue());
}
public void attributeAdded(ServletContextAttributeEvent evt) {
System.out.println("向context中添加属性:" + evt.getName() + "=" + evt.getValue());
}
public void attributeRemoved(ServletContextAttributeEvent evt) {
System.out.println("从context中移除属性:" + evt.getName() + "=" + evt.getValue());
}
public void attributeReplaced(ServletContextAttributeEvent evt) {
System.out.println("修改context中的属性:" + evt.getName() + "=" + evt.getValue());
}
}
web.xml中的配置与上面配置事件监听时一样,唯一变化的是全类名变为MyListener的全类名
内容总结
以上是互联网集市为您收集整理的javaWeb三大组件之监听器全部内容,希望文章能够帮你解决javaWeb三大组件之监听器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。