《Servlet核心技术》PPT课件.ppt

上传人:赵** 文档编号:64395208 上传时间:2022-11-29 格式:PPT 页数:52 大小:361.50KB
返回 下载 相关 举报
《Servlet核心技术》PPT课件.ppt_第1页
第1页 / 共52页
《Servlet核心技术》PPT课件.ppt_第2页
第2页 / 共52页
点击查看更多>>
资源描述

《《Servlet核心技术》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《Servlet核心技术》PPT课件.ppt(52页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第6章章 Servlet核心技术核心技术 6.1Servlet基础6.2Servlet生命周期6.3使用Servlet6.4获取运行环境信息6.5Servlet中会话设置6.6Servlet中异常设置6.7Servlet过滤器6.8Servlet监听器6.1 Servlet基础基础 6.1.1Servlet技术功能6.1.2Servlet特征Servlet是1997年由Sun和其它的几个公司提出的一项技术,使用该技术能将HTTP请求和响应封装在标准Java类中来实现各种Web应用方案。Servlet是使用Java语言编写的服务器端程序,它能够接受客户端的请求并产生响应。与常规的CGI程序相比

2、,Servlet具有更好的可移植性和安全性、以及更强大的功能等特点。返回Servlet是对支持Java的服务器的一般扩充,它最常见的用途就是扩展Web服务器,即:每当请求到达服务器时,Servlet负责对请求做出相应的响应。Servlet最常见的功能包括以下几种:Servlet技术功能技术功能 基于客户端的响应,给客户端生成并返回一个包含动态内容的HTML 页面。可生成一个HTML片段,并能将其嵌入到现有HTML页面中。能够在其内部调用其它的Java资源并与多种数据库进行交互。可同时与多个客户机进行连接,包括接收多个客户机的输入以及并将 结果返回给多个客户机。在不同的情况下,可将服务器与App

3、let的连接保持在不同的状态。对特殊的处理采用MIME类型过滤数据。将定制的处理提供给所有服务器的标准例行程序。例如,Servlet可以 修改如何认证用户。返回Servlet是传统CGI的替代品,它能够动态的生成Web页面,与其他的动态网页编程技术相比,Servlet具有以下几点非常明显的特征:Servlet特征特征(1)高效性传统CGI中,对每个请求都要启动一个新的进程,启动进程所需要的开销在有些情况下就可能很大,而Servlet在服务器上仅有一个Java虚拟机在运行,每个Servlet请求都作为持久性进程中的一个单独线程得以执行,相对于传统CGI而言,显然效率要高得多。方便性Servlet

4、提供了大量的实用工具例程。例如,自动解析和编码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话等等。功能强大许多传统CGI程序很难完成的工作使用Servlet就可轻松完成。例如Serlet能够直接和Web服务器交互,而普通的CGI程序则不能。Servlet还能够在各个应用程序之间共享数据,使得数据库连接池之类的功能很容易实现。Servlet特征特征(2)跨平台性Servlet采用Java语言编写,在有Java运行环境的任何操作系统上都可运行。成本低许多廉价甚至免费的Web服务器可供个人或小规模网站使用,而且对于现有的服务器,即使它不支持Servlet,要加上这部分功能也往往是

5、免费的(或只需要极少的投资)。可扩展性Servlet采用Java语言编写,而且得到了广泛的支持,因此基于Servlet的应用具有很好的扩展性。返回6.2 Servlet生命周期生命周期 6.2.1加载并初始化Servlet6.2.2处理客户端请求6.2.3卸载ServletServlet的生命周期如图所示:返回加载并初始化加载并初始化Servlet Servlet加载和实例化是由容器来负责完成的。加载和实例化Servlet其实指的是将Servlet类载入JVM(Java虚拟机)中并初始化。将Servlet类载入JVM中的时机存在一下3种可能:当服务器启动时。浏览器第一次接收请求时。根据管理员要

6、求。当服务器启动时,首先容器会定位Servlet类,然后加载它,容器加载Servle类以后,就会实例化该类的一个或者可能多个实例,Servlet被实例化后,容器会在客户端请求以前首先初始化它,其方式就是调用它的init()方法,并传递实现ServletConfig接口的对象。执行完init()方法后,Servlet就会处于“已初始化”状态。在初始化阶段,Servlet实例可能会抛出ServletException异常或UnavailableException异常。返回处理客户端请求处理客户端请求 Servlet初始化完毕以后,就可以用来处理客户端的请求了。当客户端发来请求时,容器会首先为请求创

7、建一个ServletRequest对象和ServletResponse对象,其中ServletRequest代表请求对象,ServletResponse代表响应对象。然后会调用service()方法,并把请求和响应对象作为参数传递,从而把请求委托给Servlet。在每次请求中,ServletRequest对象负责接受请求,ServletResponse对象负责响应请求。在HTTP请求的情况下,容器会调用与HTTP请求的方法相应的doXXX()方法,例如,若HTTP请求的方式为GET,容器会调用doGet()方法,若HTTP请求的方式为POST,容器会调用doPost()方法。Servlet在处

8、理客户端请求的时候有可能会抛出ServletException异常或者UnavailableException异常。返回卸载卸载Servlet Servlet的卸载是由容器定义和实现的,因为资源回收或其他原因,当Servlet需要销毁时,容器会在所有Servlet的service()线程完成之后(或在容器规定时间后)调用Servlet的destroy()方法,以此来释放系统资源,比如数据库的连接等等。在destroy()方法调用之后,容器会释放Servlet实例,该实例随后会被Java的垃圾收集器所回收。如果再次需要这个Servlet处理请求,Servlet容器会创建一个新的Servlet实例

9、。返回6.3 使用使用Servlet 6.3.1认识第一个Servlet6.3.2使用HttpServlet 在应用程序中,所有的Servlet都必须直接或者间接地实现javax.servlet.Servlet接口,而我们在开发过程中最常使用的则是扩展javax.servlet.Servlet接口的实现类javax.servlet.GenericServlet和其子类javax.servlet.http.HttpServlet。返回认识第一个认识第一个Servlet(1)一个普通的Servlet只需扩展javax.servlet.GenericServlet即可,GenericServlet类

10、定义了一个普通的、协议无关的Servlet,使用GenericServlet类可使编写Servlet变得简单。例如,创建一个简单的Servlet,主要代码如下:publicclassServletSampleextendsGenericServletpublicvoidservice(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOExceptionresponse.setCharacterEncoding(GBK);/设置响应的编码类型为GBKPrintWriterout=response.getW

11、riter();/获取输出对象out.println();out.println(这是第一个Servlet的例子);out.println();out.close();/关闭输出对象认识第一个认识第一个Servlet(2)配置web.xml文件,通过元素和元素实现,其中元素用来定义,元素用来为Servlet配置映射路径。ServletSamplesunyang.ServletSampleServletSample/servlet程序的运行结果如图所示:返回使用使用HttpServlet(1)创建用于Web的Servlet,需要扩展javax.servlet.http.HttpServlet。H

12、ttpServlet可用于处理HTTP请求,例如,创建用于Web的Servlet:publicclassHttpServletSampleextendsHttpServletprotectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOExceptionresp.setCharacterEncoding(GBK);/设置响应的编码类型为GBKPrintWriterout=resp.getWriter();/获取输出对象Stringname=req.getParameter(na

13、me);/获取请求的参数if(name=null|name.equals()name=sunyang;out.println(你好,+name+这是使用HttpServlet的例子);protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException this.doGet(req,resp);使用使用HttpServlet(2)配置web.xml文件ServletSamplesunyang.HttpServletSampleServletSample/httpS

14、ervlet程序的运行结果如图所示:返回6.4 获取运行环境信息获取运行环境信息 6.4.1获取Servlet信息6.4.2获取服务器端信息6.4.3获取客户端信息运行环境信息包括Servlet信息、服务器端信息和客户端信息。返回获取获取Servlet信息信息(1)Servlet信息包括Servlet的初始化参数、Servlet的初始化参数名和Servlet名称,这些信息通常都是配置在web.xml中的,可通过javax.servlet.ServletConfig接口中定义的方法来获取。1.获取Servlet的初始化参数在Web.xml文件中,元素的相关配置代表Servlet的初始化参数,在S

15、ervlet中这些参数的获取是通过ServletConfig接口的getInitParameter()方法来完成的,getInitParameter()方法的语法格式如下:publicStringgetInitParameter(Stringname)语句中,参数name为元素的值。getInitParameter()方法的返回值为元素的值。获取获取Servlet信息信息(2)2获取Servlet初始化参数名 在web.xml文件中,元素的值即为Servlet初始化参数名。获取Servlet初始化参数名通过ServletConfig接口的getInitParameterNames()方法来完成

16、,该方法的语法格式如下:publicEnumerationgetInitParameterNames()getInitParameterNames()方法的返回值为一个枚举对象(Enumeration),和getInitParameter()方法一样,该方法也可在GenericServlet的子类中直接调用。获取获取Servlet信息信息(3)3获取Servlet名称 可通过ServletConfig接口的getServletName()方法来获取Servlet在web.xml文件中的注册名称,该方法的语法格式如下:publicStringgetServletName()getServletN

17、ame()方法的返回值为元素的值,若Servlet未注册,则返回类名。返回获取服务器端信息(获取服务器端信息(1)服务器端信息包括服务器名、服务器端口号、服务器的属性信息等,Servlet通过ServletContext和ServletRequest接口提供的相关方法可获取这些服务器端信息,这些方法的名称及其作用如表所示:接口方法名称作用ServletContextStringgetServerName()获取服务器名intgetServerPort()获取服务器端口号ServletRequestStringgetServerInfo()获取服务器信息EnumerationgetAttribu

18、teNames()获取服务器属性名ObjectgetAttribute(Stringname)获取服务器属性值intgetMajorVersion()获取服务器支持的Servlet的主版本号intgetMinorVersion()获取服务器支持的Servlet的次版本号获取服务器端信息(获取服务器端信息(2)应用举例:Servlet主要代码如下:public classServerInfoServletextendsGenericServletpublic void service(ServletRequestreq,ServletResponseres)throwsServletExcept

19、ion,IOExceptionServletContextservletContext=getServletContext();/获取Servlet上下文res.setCharacterEncoding(GBK);/设置响应的编码类型为GBKPrintWriterout=res.getWriter();/获取输出对象 out.println(服务器名);out.println(+req.getServerName()+);out.println(服务器端口号);out.println(+req.getServerPort()+);out.println(服务器信息);out.println(+

20、servletContext.getServerInfo()+);out.close();/关闭输出对象获取服务器端信息(获取服务器端信息(3)在XML文件中配置之后,运行结果如图所示:返回获取客户端信息(获取客户端信息(1)客户端信息包括客户端主机名、客户端IP地址、客户端端口号、客户端的请求参数等,Servlet通过ServletRequest接口或其子接口HttpServletRequest提供的相关方法可获取客户端信息,这些方法的名称及其作用如表所示:方法名作用StringgetRemoteHost()获取客户端主机名StringgetRomoteAddr()获取客户端IP地址intg

21、etRemotePort()获取客户端端口号StringgetProtocol()获取客户端请求协议StringgetCharacterEncoding()获取客户端请求的编码格式EnumerationgetParameterNames()获取客户端请求的所有参数名StringgetParameter(Stringname)根据客户端请求的参数名获取参数值获取客户端信息(获取客户端信息(2)实例:Servlet主要代码如下:public classClientInfoServletextendsHttpServletprotected voiddoGet(HttpServletRequestr

22、eq,HttpServletResponseresp)throwsServletException,IOExceptionthis.doPost(req,resp);protected voiddoPost(HttpServletRequestreq,HttpServletResponseresp)throws ServletException,IOExceptionresp.setCharacterEncoding(GBK);/设置响应的编码类型为GBKPrintWriterout=resp.getWriter();/获取输出对象out.println(客户端主机名);out.println

23、(+req.getRemoteHost()+);out.println(客户端IP地址);out.println(+req.getRemoteAddr()+);out.close();/关闭输出对象获取客户端信息(获取客户端信息(3)配置Web.xml文件,运行结果如图所示:返回6.5 Servlet中会话设置中会话设置 6.5.1获取HttpSession对象6.5.2在HttpSession对象中保存数据6.5.3在HttpSession对象中读取数据返回获取获取HttpSession对象对象 当需要为客户端建立session时,Servlet容器会给每一个用户建立一个HttpSessio

24、n对象。获取HttpSession对象的方式是通过调用HttpServletRequest接口提供的以下两个方法:publicHttpSessiongetSession()publicHttpSessiongetSession(Booleancreate)使用无参数的getSession()方法会获取一个HttpSession对象,而对于带参数的getSession()方法,如果当前请求不属于任何会话,而且参数create值为true,则创建一个新会话,否则返回null,此后所有来自同一个的请求都属于这个会话。返回在在HttpSession对象中保存数据对象中保存数据 获取到HttpSessi

25、on对象后,通过HttpSession对象的setAttribute()方法通过绑定一对名字/值数据,可将相关数据保存到当前会话中,如果会话中已经存在该名字则替换它,setAttribute()方法的语法格式如下:publicvoidsetAttribute(Stringname,Objectvalue)参数name是绑定到会话中的属性名称,参数value是属性的值。返回在在HttpSession对象中读取数据对象中读取数据 HttpSession提供的getAttribute()方法可读取存储在会话中的对象,该方法的语法格式如下:publicObjectgetAttribute(String

26、name)参数name的值为setAttribute(Stringname,Objectvalue)方法中设置的name的值。返回6.6 Servlet中异常设置(中异常设置(1)在Servlet中,可使用两种处理异常的方式:在try/catch语句的catch语句块中直接生成并输出异常信息的 页面,或者将异常转发到异常处理的Servlet或JSP页面中。在web.xml文件中通过元素指定异常处理。第一种方式和普通的Java类中处理异常的方式类似,第二种方式则是由Servle规范提出的,其优点就是这种处理方式属于整个Web程序的异常处理,它使得Web程序以一种统一的方式在不同的服务器中显示异常

27、信息。下面看一个实例:6.6 Servlet中异常设置(中异常设置(2)(1)创建两个JSP页面,名称分别为“exception.jsp”和“notFind.jsp”,其中exception.jsp用来处理数组下标越界的异常,notFind.jsp用来处理404错误代码。数组下标越界异常页面请求中出现数组下标越界异常404错误处理页面当前请求的页面不存在notFind.jspexception.jsp6.6 Servlet中异常设置(中异常设置(3)(2)创建Servlet类ExceptionServlet.ava,该类可产生一个数组下标越界异常,代码如下:public classExcept

28、ionServletextendsHttpServletprotected voiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOExceptionthis.doPost(req,resp);protected voiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException intnum=newint2;num3=0;/数组下标越界6.6 Servlet中异常设置(中异

29、常设置(4)(3)在web.xml中配置类ExceptionServlet和元素:exceptionServletsunyang.ExceptionServletexceptionServlet/errorjava.lang.ArrayIndexOutOfBoundsException/exception.jsp404/notFind.jsp6.6 Servlet中异常设置(中异常设置(5)(4)运行结果当请求ExceptionServlet时,则出现如图1所示的页面:当请求一个不存在的页面时,则出现如图2所示的页面:图1图2返回6.7 Servlet过滤器过滤器 6.7.1Servlet过滤

30、器工作原理6.7.2Servlet过滤器配置6.7.3Servlet过滤器典型应用返回Servlet过滤器工作原理过滤器工作原理 Servlet过滤器其实就是一种小型的、可插入的Web组件,它能够对Servlet容器的请求和响应进行拦截和处理,不能生成请求和响应。Servlet过滤器介于与之相关的Servlet或JSP页面与客户端之间,工作原理:当某个资源与Servlet过滤器关联后,对该资源的所有请求都会经过Servlet过滤器,Servlet过滤器在Servlet被调用之前会检查请求对象(Request对象),并决定是将请求转发给过滤器链中的下一个资源还是中止该请求并响应用户。若请求被转发

31、给过滤器链中的下一个资源处理后,Servlet过滤器会检查响应对象(Response对象),进行处理后返回给用户,其工作原理如图所示:返回Servlet过滤器配置过滤器配置(1)配置Servlet过滤器包括下面两个步骤:(1)命名Servlet过滤器和指定Servlet过滤器相应的实现类,并且可选择指定传递至Servlet过滤器的初始化参数。配置代码如下:FilterNamepackage.classNameParamName1ParamValue1ParamName1ParamValue1过滤器的名称过滤器实现类可选的元素,用来给过滤器提供初始化参数,可包含多个子元素。参数的名称参数的值Se

32、rvlet过滤器配置过滤器配置(2)(2)将Servlet过滤器映射至URL或Servlet,这是通过元素来实现的。将Servlet过滤器映射至URL的配置代码如下:FilterName/path元素和元素的子元素一致。元素指定了过滤器的映射路径,Servlet过滤器还可映射至Servlet:FilterNameServletName元素和元素的子元素一致。元素指定过滤器映射的Servlet的名称返回Servlet过滤器典型应用(过滤器典型应用(1)创建过滤器须实现javax.servlet.Filter接口,该接口内定义了3个方法:init(FilterConfigconfig):用于初始化

33、过滤器,并其内获取web.xml文件中配置的过滤器初始化参数。doFilter(ServletRequestreg,ServletResponseres,FilterChainchain):用于进行过滤操作,该方法的第一个参数为ServletRequest对象,此对象给过滤器提供了对进入的信息(包括表单数据、Cookie和HTTP请求头)的完全访问;第二个参数为ServletResponse,用于响应使用ServletRequest对象访问的信息,通常在简单的过滤器中忽略此参数;最后一个参数为FilterChain,该参数用来调用过滤器链中的下一个资源。destroy():用于销毁过滤器。Se

34、rvlet过滤器典型应用(过滤器典型应用(2)创建过滤器实例:(1)创建Servlet过滤器“IPFilter.java”,它可以过滤用户的IP地址,以进行访问控制。该过滤器IPFilter的关键代码如下:publicclassIPFilterimplementsFilterprotectedFilterConfigfilterConfig;protectedStringfilterIP;/需要过滤的IP地址/*初始化过滤器*/publicvoidinit(FilterConfigconfig)throwsServletExceptionthis.filterConfig=config;fil

35、terIP=config.getInitParameter(filterIP);/获取被过滤的IP地址if(filterIP=null)filterIP=;Servlet过滤器典型应用(过滤器典型应用(3)/*过滤操作*/publicvoiddoFilter(ServletRequestreg,ServletResponseres,FilterChainchain)throwsIOException,ServletExceptionRequestDispatcherreqDispatcher=reg.getRequestDispatcher(error.jsp);StringremoteIP=

36、reg.getRemoteAddr();/获取本地IP地址 if(remoteIP.equals(filterIP)/如果该IP地址被过滤,将转向错误页面reqDispatcher.forward(reg,res);else/否则将请求转发给过滤器链中的其他资源chain.doFilter(reg,res);/*销毁过滤器*/publicvoiddestroy()this.filterConfig=null;Servlet过滤器典型应用(过滤器典型应用(4)(2)在web.xml文件中配置IPFilter过滤器,在配置文件中定义了一个名为filterIP的参数,它的值为192.168.70.8

37、2,表示IP地址为192.168.70.82的用户将被拒绝访问。在web.xml文件中配置过滤器如下:IPFiltersunyang.IPFilterfilterIP192.168.70.82IPFilter/*Servlet过滤器典型应用(过滤器典型应用(5)(3)建立测试IPFilter过滤器的JSP页面“success.jsp”和“error.jsp”。欢迎页面欢迎访问吉林省三扬科技咨询有限公司!拒绝访问对不起,您的IP地址禁止访问该网站success.jsperror.jspServlet过滤器典型应用(过滤器典型应用(6)(4)运行结果:当IP地址非192.168.70.82的用户访

38、问success.jsp时,运行结果如图1所示:当IP地址非192.168.70.82的用户访问success.jsp时,运行结果如图2所示:图1图2返回6.8 Servlet监听器监听器 6.8.1Servlet监听器工作原理6.8.2Servlet监听器类型6.8.3Servlet监听器典型应用返回Servlet监听器工作原理监听器工作原理 Servlet监听器是Web应用程序事件模型的一部分,当Web应用中的某些状态发生改变时,Servlet容器就会产生相应的事件,比如创建ServletContext对象时触发ServletContextEvent事件,创建HttpSession对象时触

39、发HttpSessionEvent事件,Servlet监听器可接收这些事件,并可以在事件发生前、发生后可以做一些必要的处理。返回Servlet监听器类型监听器类型(1)根据监听对象的不同,Servlet2.4规范将Servlet监听器划分为以下3种:ServletContext事件监听器:用于监听应用程序环境对象。HttpSession事件监听器:用于监听用户会话对象。ServletRequest事件监听器:用于监听请求消息对象。1ServletContext事件监听器 对ServletContext对象进行监听的接口有ServletContextAttributeListener和Servl

40、etContextListener,其中ServletContextAttributeListener用于监听ServletContext对象中属性的改变,包括增加属性、删除属性和修改属性。ServletContextListener用于监听ServletContext对象本身的改变,例如ServletContext对象的创建和销毁。Servlet监听器类型监听器类型(2)接口名称方法名称描述ServletContextAttributeListenerattributeAdded(ServletContextAttributeEventscae)增加属性时激发此方法attributeRemo

41、ved(ServletContextAttributeEventscae)删除属性时候激发此方法attributeReplaced(ServletContextAttributeEventscae)修改属性时激发此方法ServletContextListenercontextDestroyed(ServletContextEventsce)销毁ServletContext时激发此方法contextInitialized(ServletContextEventsce)创建ServletContext时激发此方法ServletContext事件监听器中的接口和方法如表所示:Servlet监听器类型

42、监听器类型(3)2HttpSession事件监听器 对会话对象进行监听的接口有HttpSessionAttributeListener、HttpSessionListener、HttpSessionActivationListener和HttpSessionBindingListener。其中HttpSessionAttributeListener用于监听HttpSession对象中属性的改变,例如属性的增加、删除和修改。HttpSessionListener用于监听HttpSession对象的改变,例如HttpSession对象的创建与销毁,HttpSessionActivationList

43、ener用于监听HttpSession对象的状态,例如HttpSession对象是被激活还是被钝化。HttpSessionBindingListener用于监听HttpSession对象的绑定状态,例如添加对象和移除对象。Servlet监听器类型监听器类型(4)HttpSession事件监听器中的接口和方法如表所示:接口名称方法名称描述HttpSessionAttributeListenerattributeAdded(HttpSessionBindingEventhsbe)增加属性时激发此方法attributeRemoved(HttpSessionBindingEventhsbe)删除属性时

44、候激发此方法attributeReplaced(HttpSessionBindingEventhsbe)修改属性时激发此方法HttpSessionListenersessionCreated(HttpSessionEventhse)创建HttpSession时激发此方法sessionDestroyed(HttpSessionEventhse)销毁HttpSession时激发此方法HttpSessionActivationListenersessionDidActivate(HttpSessionEventse)激活HttpSession时激发此方法sessionWillPassivate(Ht

45、tpSessionEventse)钝化HttpSession时激发此方法HttpSessionBindingListenervalueBound(HttpSessionBindingEventhsbe)调用setAttribute()方法时激发此方法valueUnbound(HttpSessionBindingEventhsbe)调用removeAttribute()方法时激发此方法Servlet监听器类型监听器类型(5)3ServletRequest事件监听器 对请求消息对象进行监听的接口有ServletRequestListener和ServletRequestAttributeListe

46、ner,其中ServletRequestListener用于监听ServletRequest对象的变化,例如ServletRequest对象的创建和销毁。ServletRequestAttributeListener用于监听ServletRequest对象中属性的变化,例如属性的增加、删除和修改。ServletRequest事件监听器的接口和方法如表所示:接口名称方法名称描述ServletRequestAttributeListenerattributeAdded(ServletRequestAttributeEventsrae)增加属性时激发此方法attributeRemoved(Servl

47、etRequestAttributeEventsrae)删除属性时候激发此方法attributeReplaced(ServletRequestAttributeEventsrae)修改属性时激发此方法ServletRequestListenerrequestDestroyed(ServletRequestEventsre)销毁ServletRequest时激发此方法requestInitialized(ServletRequestEventsre)创建ServletRequest时激发此方法返回Servlet监听器典型应用(监听器典型应用(1)(1)创建Servlet监听器OnlineList

48、ener,OnlineListener监听器用于监听网站的在线人数,代码如下:publicclassOnlineListenerimplementsHttpSessionListener privateintonlineCount;/定义一个代表在线人数的变量 publicOnlineListener()onlineCount=0;publicvoidsessionCreated(HttpSessionEventsessionEvent)/会话创建时的处理onlineCount+;sessionEvent.getSession().getServletContext().setAttribut

49、e(online,newInteger(onlineCount);publicvoidsessionDestroyed(HttpSessionEventsessionEvent)/会话销毁时的处理onlineCount-;sessionEvent.getSession().getServletContext().setAttribute(online,newInteger(onlineCount);Servlet监听器典型应用(监听器典型应用(2)(2)在web.xml文件中配置OnlineListener监听器,相关代码如下:(3)创建JSP页面“online.jsp”,测试OnlineListener监听器,代码如下:使用监听器监听在线人数的例子当前的在线人数:运行程序,显示结果如图所示:sunyang.OnlineListener返回

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com