快速业务通道

J2EE表现层设计思考 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
理,并且便于扩展和提高性能。

如果你在服务器上保存Session状态,你必须要决定如何使该状态信息被每个服务器得到,即你运行该应用的服务器。如果群集的软件是运行在负载均衡的硬件上,那么就要处理这个Session状态的复制问题,这是一个多维的问题,不过,众多的应用服务器现在都提供了各种各样的解决方案。也就是说,在应用服务器的级别上有解决的方法。其中的一个方法是保证用户只与一个服务器打交道,它在流量管理软件上用得比较多,例如Resonate [Resonate]的软件,在用户的Session中,该用户发出的每个请求都会被路由到同一个服务器处理。这种方式也被称为server affinity。

另一个可选的方式是在商业层或者资源层保存Session状态。企业JavaBeans组件可用来在商业层保存Session的状态,而一个关系数据库则可用在资源层。

控制客户访问

有很多时候我们都要限制或者控制客户端访问某些应用资源。下面我们就来讨论其中两种这样的情形。

限制或者控制客户访问的一个原因是防止一个视图或者部分的视图被一个客户直接访问。这个问题会发生在以下情况,例如仅有注册或者登陆后的用户才可允许访问一个特别的视图,或者是根据用户的角色限制用户访问部分的视图。

在描述过这个问题后,我们将讨论第二种情况,它和控制应用中一个用户的流程有关。后者的讨论和重复的form提交有关,因为多次提交将会导致不必要的重复事务。

控制视图访问

在一些情况下,资源被限制为完全不允许某些用户访问。有几个方法可以做到这一点。一个方法是加入应用逻辑到处理控制器或者视图的程序中,禁止某些用户访问。另一个方案是设置运行时的系统,对于一些资源,仅允许经由另一个应用资源内部调用。在这种情形,对于这些资源的访问必须被通过另一个表现层的应用资源进行,例如一个servlet控制器。对于这些受限制的资源不允许通过一个浏览器直接调用。

处理这个问题的一个常见方法是使用一个控制器来作为该类访问控制的一个委托者。另一个常见的方式是在一个视图中置入一个保护设置。我们这里主要讨论基于视图的控制策略。在考虑选择何种方式来控制访问之前,我们首先来描述一下这些策略。

在视图中置入保护逻辑

对于在一个视图的处理中置入一个保护逻辑,有两个常见的应用。一个是防止访问整个的资源,而另一个是限制访问部分的资源。

在每个视图中包含一个All-or-Nothing保护

在一些情况下,置入到视图处理代码中的逻辑以all-or-nothing的模式允许或者拒绝访问。也就是说,这个逻辑限制某个特别的用户访问一个特别的视图。通常这一类型的保护最好封装到一个中央化的控制器中,这样便于集中化管理。如果只有很少的页面需要防护,那么可以使用这个策略。通常这个情形都是发生在一个非技术人员需要更新网站一小部分的静态文件。如果客户仍然需要登陆到网站来浏览这些页面,那么只需要在每个页面的顶部加入一个自定义的tag(标记)就可以做到控制访问。如3.1的例子所示。

例子3.1 在每个视图中包含一个All-or-Nothing保护

<%@ taglib uri="/WEB-INF/corej2eetaglibrary.tld" prefix="corePatterns" %> <corePatterns:guard/> <HTML> . . . </HTML>

J2EE表现层设计思考(3)

时间:2010-07-08

给视图的某些部分加入保护

在其它情况下,置入到视图处理代码的逻辑可拒绝访问一个视图的某些部分。这个策略可以和上面的all-or-nothing策略一起使用。为说明这一点,我们这里使用控制访问一个建筑物中的一个房间作类比。all-or-nothing的保护策略告诉用户是否可以进入房间,而第二个保护策略则是告诉用户在进入房间后,允许他们看到什么东西。以下就是一些你可以利用这个策略的例子。

根据用户的角色决定是否显示视图的某

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号