欢迎来到天天文库
浏览记录
ID:30791887
大小:138.05 KB
页数:6页
时间:2019-01-03
《web系统与技术--实验十》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验十Servlet事件处理网络112李海佩201106090204一、实验目的1.了解在哪些对象上可以产生事件;2.掌握ServletContext和HttpSession对象上的事件处理方法。3.了解在ServletRequest对彖上的事件及处理方法。二、实验原理在Web应用程序屮,事件的处理也是通过事件监听器接口处理的。Web应川事件处理的原理为:当Web应用屮某些状态改变时,Servlet容器就产生某种事件,如ServletContext对象初始化时会产生ScrvlctContcxtEvcnt事件,此时Servlet容器就会从注册的事件监听器中
2、寻找处理该事件的监听器对象,并执行相应的代码。在Servlet2.4规范中共定义了6种事件类型和8个事件监听器接口,它们可以处理三种对象上的事件,如表13」所示:表13.1监听器接口与事件类监听对象监听器接口监听事件ServletContextServletContextListenerServletContextEventServletContextAttributeListenerServletContextAttributeEventHttpSessionHttpSessionListenerHttpSessionEventHttpSessionA
3、ctivationListenerHttpSessionAttributeListenerHttpSessionBindingEventHttpSessionBindingListenerServletRequestServletRequestListenerServletRequestEventServletRequestAttributeListenerServletRequestAttributeEvent三、实验内容与步骤(一)创建一个名为chaplO的Web项目,编写一个ServletContext事件监听器,该事件监听器的功能是当Web应用程
4、序初始化和销毁吋以及在ServletContext对象上添加属性、删除属性和替换属性时,在Tomcatth忐中记录有关信息。【步骤1】编写监听器类。packagelistener;importjava.util.Date;importjavax.naming.Context;importjavax.naming.InitialContext;importjavax.servlet.*;importjavax.sql.DataSource;PublicfinalclassMyListenerimplementsServletContextListener,
5、ServletContextAttributeListener{privateServletContextServletContext=null;privateContextcontext=null;privateDataSourcedataSource=null;publicvoidcontextDestroyed(ServletContextEventargO){context=(Context)arg0.getServletContext();((ServletContext)context).removeAttribute(HdataSource
6、n);((ServletContext)context).log("应用程序己关闭:"+newDate());}publicvoidcontextInitialized(ServletContextEventargO){context=(Context)arg0.getServletContext();try{if(context==null){context=newInitialContext();dataSource=(DataSource)context.Iookup(Hjava:comp/env/jdbc/sanipleDSM);}catch(E
7、xceptione){((ServletContext)context).log(MExceptionn+e);((ServletContext)context).setAttribute(ndataSourcefdataSource);((ServletContext)context).Iog(n应用程序已启动:H+newDate());publicvoidattributeAdded(ServletContextAttributeEventargO){context=(Context)arg0.getServletContext();((Servl
8、etContext)context).log(n添力11一■个属"4-argO.
此文档下载收益归作者所有