本篇内容主要讲解“Servlet监听器怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Servlet监听器怎么实现”吧!
1)概念:
1)监听ServletContext、HttpSession和ServletRequest等域对象的创建事件、销毁事件、域对象中属性发生改变的事件。 2)当域对象的状态发生变化的时候,服务器自动调用监听器对象中的方法。
2)监听对象:
1)ServletContext 2)HttpSession 3)ServletRequest
3)监听内容:
监听对象的创建、销毁以及对象属性发生改变的事件
4)分类:
按监听的对象划分: 1)ServletContext对象监听器: 实现ServletContextListener、ServletContextAttributeListener接口 应用:作为定时器、加载全局属性对象、创建全局数据库连接、加载缓存信息等 2)HttpSession对象监听器: 实现HttpSessionListener、HttpSessionAttributeListener接口 web.xml中配置session超时时间(单位:分): <session-config> <session-timeout>10</session-timeout> </session-config> 应用:统计在线人数、记录访问日志等 3)ServletRequest对象监听器: 实现ServletRequestListener、ServletRequestAttributeListener接口 应用:读取request参数,记录访问历史 按监听的事件划分: 1)监听域对象的创建事件、销毁事件的监听器: 实现ServletContextListener、HttpSessionListener、ServletRequestListener接口 2)监听域对象中属性的增加事件、属性的删除事件的监听器: 实现ServletContextAttributeListener、HttpSessionAttributeListener、ServletRequestAttributeListener接口。 3)监听绑定到HttpSeesion中的某个对象的状态变化事件的监听器(创建普通JavaBean): 实现接口及方法:HttpSessionBindingListener接口(valueBound和valueUnbound方法)、HttpSessionActivationListener接口(sessionWillPassivate和sessionDidActivate方法) HttpSession中的对象状态: 绑定: 通过setAttribute()方法将bean保存到session对象中 解除绑定: 通过removeAttribue()方法解除绑定 钝化(序列化): 将session对象持久化到存储设备上 活化(反序列化): 将session对象从存储设备上进行恢复 session钝化机制: 1)把服务器不常使用的session对象暂时序列化到系统文件或者是数据库中,当使用时反序列化到内存中,整个过程由服务器自动完成; 2)session的钝化机制由SessionManager管理,创建一个普通的JavaBean绑定和解除需要实现HttpSessionBindingListener接口 3)JavaBean必须实现Serializable接口
5)实现:
web.xml <listener> <listener-class>完整类名</listener-class> </listener> 举例: <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class> </listener> <listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener> <session-config> <session-timeout>60</session-timeout> </session-config> 监听器的启动顺序:按照web.xml的配置顺序来启动
6)注意:
加载顺序:监听器>过滤器>Servlet
到此,相信大家对“Servlet监听器怎么实现”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。