问题:
远程客户端要遍历一个很大的结果列表。
很多J2EE应用系统都会让客户端执行各种查询。这些查询经常从表现层开始,有业务层执行,最后显示在浏览器中。
可以用很多方法来完成查询。如果是entity bean 实现的业务对象,可以用entity bean 的finder方法。如果没有用entity bean ,那么通常就会使用数据访问对象执行查询。当查询只返回一个很小的结果集的时候,不会出现什么问题。但是查询返回了大量匹配的entity bean ,那么entity bean 的finder方法的效率就会很低了。
另一个问题在于,也许客户端没有处理大型结果集的能力,所以就要由服务器来处理结果,客户端往往都不会使用查询的全部结果,所以在查看,使用了一部分结果之后,剩下的也就抛下不用了。比如用户可能用浏览器执行一次查询,查看了开头的几条结果,抛下了剩下的结果,有执行另一次查询了。
所以,通常不需要把整个的查询结果都返回还给客户端,如果客户端只显示了前几条结果,然后就抛下了这次查询,那么网络的带宽没有浪费,因为数据可以再服务器那里缓存着,可能永远也不会送到客户端。
约束:
需要避免使用EJB finder方法来处理大型的查询造成的负载。
需要实现一种只读用例,这种用例不需要事务
需要为客户端提供一种机制,能够高效率的进行查询,并且遍历一个大型的结果集
需哎哟在服务器端维护查询结果
解决方案:
使用值列表处理器来执行查询、缓存结果、并且让客户端遍历、选择查询查询结果。
值列表处理器提供了查询和迭代的功能。为了完成这一一次查询,值列表处理器使用个数据访问对象执行查询,从数据库获取匹配的结果。即使应用系统使用了entity bean 实现业务对象,本模式也避免使用ejb finder方法。
分享到:
相关推荐
- 价值列表处理器(Value Object List Processor):处理值对象列表。 - 数据访问对象(Data Access Object):提供数据访问接口。 - 服务激活器(Service Activator):响应消息队列。 - 域存储(Domain Store...
3. **应用服务器层(Application Server Tier)**:这是J2EE的核心,提供了EJB(Enterprise JavaBeans)、JMS(Java Message Service)、JTA(Java Transaction API)等服务,用于业务逻辑处理和组件管理。...
- **值列表处理器**(Value List Handler):处理值列表的逻辑。 #### 集成层模式 集成层模式关注于如何将J2EE应用与其他系统或服务进行有效集成,包括消息传递、事务管理和持久化策略等。 J2EE模式的引入,极大...
**模型(Model)**:模型层负责存储和处理业务数据,执行业务逻辑。它是应用程序的核心,负责处理数据的状态以及对数据的操作。当模型中的数据发生变化时,它会通知视图和控制器,确保数据的一致性和准确性。 **...
2. 业务层模式:业务委托、值对象、会话外观、复合实体、值对象组装器、值列表处理器和服务定位器,这些模式帮助管理业务逻辑和数据访问。 3. 集成层模式:数据访问对象和服务激活器,主要涉及数据库操作和企业服务...
J2EE核心模式强调的是分层架构,包括表示层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer): 1. **表示层**:通常由JSP页面和Servlet组成,负责与用户交互和展示...
4. **工厂方法模式**:在服务层,可以使用工厂方法模式动态地决定实例化哪个业务对象,以实现解耦。 5. **装饰器模式**:J2EE中的拦截器、过滤器等机制,本质上就是装饰器模式的应用,用于在不改变原有对象功能的...
J2EE设计模式是解决特定问题的可复用解决方案,以下列举了8种常见的J2EE设计模式: 1. 前控制器(Front Controller):作为统一的入口点,接收所有用户请求,处理请求后转发给相应的处理器。它简化了表示层的管理,...
8. **职责链模式**:在请求处理过程中,职责链模式允许将多个处理器连接成一个链,每个处理器都可以处理请求或传递给下一个处理器。例如,Servlet Filter链。 9. **会话 bean 模式**:在Java EE的EJB中,会话bean...
在J2EE中,例如用于DAO(数据访问对象)的创建,使得业务层与具体的数据访问技术解耦。 3. **策略模式**: 定义一系列算法,并将每个算法封装起来,使它们可以相互替换。J2EE的国际化和本地化策略就是很好的例子,...
3. 控制层:Servlet作为请求的处理器,接收来自客户端的HTTP请求,根据请求类型调用相应的业务逻辑,并将结果返回给客户端。Servlet可以协调各层之间的通信,实现MVC(Model-View-Controller)设计模式。 4. 数据...
6. **Service 和 DAO**:在业务层(Service)封装对数据库的操作,进一步抽象出数据访问对象(DAO),使用 ORM 框架如 Hibernate 或 MyBatis 进行数据库操作。 7. **事务管理**:学习如何配置和使用 Spring 的事务...
6. **视图-控制器模式(MVC)**:将用户界面、业务逻辑和数据模型分离,JSP、Servlet和JavaBeans在Web层中应用此模式。 7. **前端控制器模式(Front Controller)**:例如Spring MVC中的DispatcherServlet,处理...
- **体系架构概述**:J2EE采用多层分布式架构,包括客户端层、Web层、业务层和服务层。其中Web层使用Servlets和JSP来处理HTTP请求;业务层则使用EJB(Enterprise JavaBeans)来实现业务逻辑。 - **主要技术**:...
同时,Service层通常包含业务逻辑,而DAO层则与数据库交互,实现数据的CRUD操作。这种分层架构使得代码更加模块化,易于维护和扩展。 Spring框架的另一个重要方面是依赖注入(Dependency Injection,DI),它使得...
业务逻辑组件 16 二.J2EE容器 16 容器服务 16 三.打包J2EE组件 18 四.开发者角色 18 J2EE产品提供商 18 工具提供商 19 应用程序组件开发者 19 企业Bean开发者 19 Web组件开发者 19 J2EE应用程序客户端开发者 19 ...
- **层次结构**:通常分为表示层、业务逻辑层和服务层(如数据访问层)。这种架构有助于提高系统的灵活性和可维护性,同时也便于扩展和重用。 - **优势**:通过将不同的功能分布到不同的层,能够更好地隔离关注点,...
《J2EE核心模式》源代码解析 J2EE(Java 2 Platform, Enterprise Edition)是Java平台上用于构建企业级应用程序的框架。它提供了一组服务、APIs和协议,以支持开发分布式、多层的企业应用。《J2EE Core Patterns》...
J2EE体系结构设计通常涉及多种技术和模式,以满足复杂业务需求。 **模型-视图-控制器(MVC)架构** MVC架构是J2EE应用中常见的设计模式,尤其适用于交互式的Web应用。在MVC中,模型层(Model)负责存储和处理业务...