第五章 控制层实现技术.ppt
《第五章 控制层实现技术.ppt》由会员分享,可在线阅读,更多相关《第五章 控制层实现技术.ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章 控制层实现技术 本章要点uu如何利用一个Servlet处理多个请求uu实现博客网站的博文分类管理uu使用过滤器解决编码装换问题uu利用状态跟踪和侦听器实现统计访问人数和在线人数uu利用SmartUpload实现文件上传和下载5.1多请求处理与控制层实现多请求处理与控制层实现 uu用一个Servlet处理多个请求如果用不同的如果用不同的ServletServlet处理不同的请求,那么处理不同的请求,那么项目中的就会包含很多项目中的就会包含很多ServletServlet,使程序变得,使程序变得繁琐而不清晰,也不便于调试。为了使一个繁琐而不清晰,也不便于调试。为了使一个ServletSer
2、vlet能处理多个请求,可以人为地为每次能处理多个请求,可以人为地为每次请求增加一个参数,如请求增加一个参数,如methodmethod,通过该参数,通过该参数的值决定具体如何处理。的值决定具体如何处理。uu案例5-1实现博客网站的博文分类管理控制层主要用来接收用户请求,根据用户的请控制层主要用来接收用户请求,根据用户的请求调用业务层,并将获得的结果转发给视图。求调用业务层,并将获得的结果转发给视图。这里给出博文分类的控制类设计,并实现博文这里给出博文分类的控制类设计,并实现博文分类的管理,运行界面如图分类的管理,运行界面如图5-15-1、5-25-2和图和图5-35-3所示。所示。uu技术要
3、点技术要点控制层采用控制层采用ServletServlet实现。在每个实现。在每个ServletServlet中通中通过工厂类来建立所需的业务逻辑对象。过工厂类来建立所需的业务逻辑对象。请求时增加参数请求时增加参数methodmethod,在,在processRequestprocessRequest()()方法中根据方法中根据methodmethod的值调用不同的功能,的值调用不同的功能,从而实现处理多请求的目的。为了使结构清晰,从而实现处理多请求的目的。为了使结构清晰,一个功能对应一个方法。一个功能对应一个方法。5.2 过滤器与编码处理过滤器与编码处理 uu过滤器 过滤器是位于请求与响应中
4、间的起过滤功能的过滤器是位于请求与响应中间的起过滤功能的程序。过滤器能够拦截请求或响应信息,并对程序。过滤器能够拦截请求或响应信息,并对其进行过滤处理。正由于它的这一特性,通常其进行过滤处理。正由于它的这一特性,通常用它来实现一些特殊的功能,比如资源请求及用它来实现一些特殊的功能,比如资源请求及响应报告,日志记录,访问权限控制,编码转响应报告,日志记录,访问权限控制,编码转换,数据加密等。换,数据加密等。一个过滤器必须实现一个过滤器必须实现javax.servlet.Filterjavax.servlet.Filter接口。该接接口。该接口包含如下口包含如下3 3个方法:个方法:uuvoid
5、init(FilterConfig filterConfig)void init(FilterConfig filterConfig):这个方法在容器实例:这个方法在容器实例化过滤器时被调用,它主要用于做一些准备工作。化过滤器时被调用,它主要用于做一些准备工作。FilterConfigFilterConfig对象包含配置信息。对象包含配置信息。uuvoid doFilter(ServletRequest request,void doFilter(ServletRequest request,ServletResponse response,FilterChaServletResponse r
6、esponse,FilterChauuin chain)in chain):这个方法用于处理请求和响应。:这个方法用于处理请求和响应。FilterChainFilterChain对于对于正确的过滤操作至关正确的过滤操作至关uu重要,通过调用重要,通过调用FilterChainFilterChain的的doFilter()doFilter()方法可重新返回到被方法可重新返回到被拦截的程序中。拦截的程序中。uuvoid destroy()void destroy():该方法由容器在销毁过滤器实例之前调用。:该方法由容器在销毁过滤器实例之前调用。uu案例5-2 设计一个编码过滤器设计一个过滤器,以避
7、免在所有的设计一个过滤器,以避免在所有的ServletServlet中中都要设置编码。都要设置编码。技术要点技术要点技术要点技术要点uu在在mon包下建立一个过滤器。过滤的配包下建立一个过滤器。过滤的配置用置用xmlxml文件。为过滤器指定一个参数文件。为过滤器指定一个参数encodingencoding,用于指定编码方式。用于指定编码方式。uu在过滤器的在过滤器的doFilter()doFilter()方法中调用方法中调用requestrequest对象的对象的setCharacterEncodingsetCharacterEncoding()()方法设置编码方式。方法设置编码方式。5.3
8、状态跟踪与侦听器状态跟踪与侦听器 uu会话跟踪会话跟踪 从一个客户打开浏览器并连接到服务器开始,到客户从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要这是一个客户,就需要SessionSession对象。与会话相关的接对象。与会话相关的接口主要是口主要是java.servlet.http.HttpSess
9、ionjava.servlet.http.HttpSession接口。接口。HTTPHTTP客户端和客户端和HTTPHTTP会话两者之间的关联是通过会话两者之间的关联是通过HttpSessionHttpSession接口实现的。这种关联可以维持指定的接口实现的。这种关联可以维持指定的时间,同时也可以跨越多个连接或用户页面请求。一时间,同时也可以跨越多个连接或用户页面请求。一个个SessionSession只负责和一个用户通信,并存储该用户的有只负责和一个用户通信,并存储该用户的有关信息。关信息。HttpSessionHttpSession接口提供了一些方法供开发者接口提供了一些方法供开发者使用
10、。表使用。表5-75-7是是HttpSessionHttpSession接口的常用方法。在案例接口的常用方法。在案例2-32-3中就用到了会话对象。中就用到了会话对象。uuServlet上下文与与ServletServlet上下文有关的接口是上下文有关的接口是javax.servlet.ServletContextjavax.servlet.ServletContext。当。当ServletServlet初始化时,初始化时,WebWeb容器将初始化一个容器将初始化一个ServletContextServletContext上下文给上下文给ServletServlet,当前,当前ServletC
11、ontextServletContext对象包含在对象包含在ServletConfigServletConfig对对象中。利用上下文对象,可以存储应用级数据象中。利用上下文对象,可以存储应用级数据(如,网站的访问人数),可为所有用户共享。(如,网站的访问人数),可为所有用户共享。表表5-25-2是是ServletContextServletContext接口的常用方法。具接口的常用方法。具体应用可参考案例体应用可参考案例5-35-3。uu侦听器Listener 侦侦听听听听ServletContextServletContext对象对象对象对象uu对对ServletContextServlet
12、Context对象进行侦听的接口有对象进行侦听的接口有ServletContextAttributeListenerServletContextAttributeListener和和ServletContextListenerServletContextListener。侦听会话侦听会话侦听会话侦听会话 uu对客户会话进行侦听的接口有对客户会话进行侦听的接口有HttpSessionAttributeListenerHttpSessionAttributeListener接口、接口、HttpSessionListenerHttpSessionListener接口、接口、HttpSessionAc
13、tivationListenerHttpSessionActivationListener接口和接口和HttpSessionBindingListenerHttpSessionBindingListener接口。接口。侦听请求侦听请求侦听请求侦听请求uu对对ServletRequestServletRequest对象进行侦听的接口有对象进行侦听的接口有ServletRequestAttributeListenerServletRequestAttributeListener和和ServletRequestListenerServletRequestListener。uu案例5-3 统计访问人数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五章 控制层实现技术 第五 控制 实现 技术
限制150内