- 1、本文档共109页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Servlet详解
Servlet生命周期事件及监听器 是Servlet2.3版本后新增功能 能够在不修改原有Servlet基础上,监听程序中Servlet各个对象:ServletContext、HttpSession、HttpServletRequest对象中存取数据的变化。 可以监听客户端的请求,服务器端的操作, 主要包括:事件模型和监听器两部分组成 事件模型 事件是java中的一个重要的概念,指某个代码运行过程中的一个状态,如:HttpSession创建,属性值的改变等都可以用事件来描述。 事件:java.util.EventObject getSource()-Object 事件侦听程序: (标志)接口:java.util.EventListener 实现listener接口 事件源: 注册侦听程序 触发事件侦听程序 生成事件对象 调用已注册的侦听程序,处理事件 典型的时间监听过程 创建一个Context生命周期事件来管理数据库的连接,这个监听器有如下的功能。 1、这个监听器监视着程序的启动 2、这个应用程序写入日志到数据库中并且把连接对象存储在Context中 3、Servlet使用连接对象来执行SQL 4、监听器监听应用程序的关闭 5、在关闭应用程序之前,先关闭连接对象 各类事件对应的监听器接口 具体对应关系 HttpSessionListener 事件(类):HttpSessionEvent getSession 侦听器(接口):HttpSessionListener sessionCreated(HttpSessionEvent?se) sessionDestroyed(HttpSessionEvent?se) HttpSessionListener 示例 实现接口HttpSessionListener 注册侦听 在web.xml中注册侦听程序 listener listener-class servlet.OnlineCounterListener /listener-class /listener HttpSessionListener 示例:利用HttpSessionListener实现网站在线人数统计功能 public class OnlineCounter { private static long online = 0; public static long getOnline() { return online; } public static void raise() { online++; } public static void reduce() { online--;} } public class OnlineCounterListener implements HttpSessionListener { public void sessionCreated(HttpSessionEvent hse) { System.out.println(in session create); OnlineCounter.raise(); } public void sessionDestroyed(HttpSessionEvent hse) { OnlineCounter.reduce(); } } HttpSessionListener 测试: % out.println(onlineCount:+OnlineCounter.getOnline()); % Servlet其它事件及侦听器 ServletContextEvent,ServletContextListener contextDestroyed(ServletContextEvent sce) contextInitialized(ServletContextEvent sce) ServletContextAttributeEvent, ServletContextAttributeListener attributeAdded(ServletContextAttributeEvent scab) attributeRemoved(ServletContextAttributeEvent scab) attributeReplaced(ServletContextAttributeEvent scab) ServletRequestEvent,ServletReuestListener ServletRequestAttributeEvent,Ser
文档评论(0)