软件体系架构模式在J2EE中的应用 - 编程入门网
11-22
3、解决方案与结构 管道和过滤器体系架构模式把系统任务分成为几个独立的处理步骤。这些步骤采用通过系统的数据流连接。一个步骤的输出是下一个步骤的输入。每个处理步骤由一个过滤器组件实现,它处理或者转化数据,并且系统的输入可以是多种数据源。 这种体系架构模式具有许多特性,如下: 过滤器是独立运行的部件.也就是除了输入和输出外,每个过滤器不受任何其他过滤器运行的影响.在设计上,过滤器之间不共享任何状态信息。 独立性还表现在它对其处理的上游和下游连接的过滤器是"无知"的.它的设计和使用不对与其连接的任何过滤器施加限制,唯一关心的是其输入数据的,然后进行加工处理,最后产生数据输出。 4、非软件描述 基于各种流体工作的系统,普遍都采用由输送管道连接起来的处理结构.例如我们冬天见到的供暖系统中,处理器包括加热器,过滤器,调节阀,流量表等,每个处理器都有流体的入口和出口,它们通过各种管道连接在一起形成了整个系统.这样的结构在城市的自来水系统也可以看到。见下图: 5、优点与缺点 5.1 优点 通过使用过滤器交换增加了灵活性 通过重组增加了灵活性 过滤器组件的重用 流水线的快速原型 并行处理提高效率 5.2 缺点 共享状态信息或者昂贵或者不灵活 数据转换额外开销。 错误处理 Servlet2.3 Filter 1、Servlet Filter概述 凡是开发过J2EE的web application的人员都知道,经常需要处理以下几种情况: 访问特定资源(Web 页、JSP 页、servlet)时的身份认证 应用程序级的访问资源的审核和记录 应用程序范围内对资源的加密访问,它建立在定制的加密方案基础上 对被访问资源的及时转换, 包括从 servlet 和 JSP 的动态输出 在servlet2.3之前这些功能处理是很难实现的,但是Java Servlet 2.3 规范新增了不少激动人心的功能,其中之一便是过滤器(Filter),其实这就是我们所说的管道和过滤器体系架构在J2EE中的应用实践. 通过使用该模式使得Web Application开发者能够在请求到达Web资源之前截取请求,在处理请求之后修改应答。其结构图如下: 一个执行过滤器的Java 类必须实现javax.servlet.Filter 接口。这一接口含有三个方法: init(FilterConfig):这是容器所调用的初始化方法。它保证了在第一次 doFilter() 调用前由容器调用。它能获取在 web.xml 文件中指定的filter初始化参数。 doFilter(ServletRequest, ServletResponse, FilterChain):这是一个完成过滤行为的方法。它同样是上一个过滤器调用的方法。引入的 FilterChain 对象提供了后续过滤器所要调用的信息。 destroy():容器在销毁过滤器实例前,doFilter()中的所有活动都被该实例终止后,调用该方法。 软件体系架构模式在J2EE中的应用(3)时间:2009-11-222、Filter链介绍 所有过滤器都服从调用的过滤器链,并通过定义明确的接口得到执行。WebApplication可以指定许多过滤器来完成相关的工作.那么它们就组成一个过滤器链来完成相应的工作.其结构如下图: 3、例子 3.1 简单filter 在PetStore1.3.1中的就存在两个Filter过滤器.其中一个过滤器,完成字符集的编码的转化,如大家经常遇到的汉字编码问题,你只需配置为GBK即可.它从Web.xml之中读取这些参数的配置信息,然后进行编码的转化.另一个是安全校验Fliter,它负责进行安全检查哪些页面可以进行,哪些不可。它们组成一个Filter链,结构图和实现代码如下:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |