基于j2ee技术的团购网站的设计与实现内容摘要:
onForm 属性经常都是 String。 Struts1使用 Commons Beanutils 来进行 类型转换。 转换每个类,而不是为每个实例进行配置 Struts2 内置了转换器,对于日期、整数或浮点数等类型会自动去调用相 应的转换器进行类型转换,为编程带来极大的方便 视图支持 Struts1只支持 JSP作为其表现层技术,没有提供对目前流行的 FreeMarker、 Velocity等表现层的支持 Struts2 提供了对FreeMaker、 Velocity 等模板技术的支持,并且配置很简单 Struts 体系结构 是基于 MVC 模式的开源框架,所以其有着清晰的三层架构,各层 8 分工明确,都可以独立运行,互不干扰,耦合度低。 Struts2 整个体系主要由以下几部分构成,如图 所示: FilterDispatch/StrutsPrepareAndExecuteFilter:FilterDispatch 是 版本之前的核心控制器,之后的版本的核心控制器便全部都被StrutsPrepareAndExecuteFilter 所取代。 核心控制器主要负责拦截所有客户端的请求,作为一个 Filter 通过 文件被加入到了 Web 应用当中,当有客户端请求到达时,他就会进行拦截,然后将客户端请求转发给相应的业务逻辑控制器 Action 进行处理。 : 文件是 Struts2 框架的配置文件,主要负责配置业务逻辑控制器 Action,以及用户自定义的拦截器等,可以说是 Struts2 各个组件之间的纽带。 核心控制器就是在拦截客户端请求之后通过读取 来决定将客户端请求转发给哪个 Action 进行处理的。 Action: Action 是 Struts2 的业务逻辑控制器,负责处理客户端请求并将处理结果输出给客户端。 想要处理客户端请求就必须获得请求字符串的参数或从表单提交数据。 Struts2 采用了 JavaBean 的风格,即要访问数据,就要给每个属性都提供一个 getter 和 setter 方法。 这样每一个请求字符串的参数和从表单提交的数据都可以作为 Action 属性。 视图组件: Action 在处理完客户端请求后会通过视图组件把处理结果显示出来,包括以下两种情况。 一种是 Action 向视图组件输出数据信息,然后由试图组件把这些数据信息显示出来;另一种是 Action 并没有向视图组件输出数据信息,只是根据处理结果进行简单的页面跳转。 C l e n t F i l t e r D i s p a t c h e r A c t i o n向 U R L 所 指 定 的 资 源 发 起 请 求拦 截 客 户 端 请 求 , 再 读 取 S t r u t s . x m l 文 件根 据 配 置 文 件 将 客 户 端 请 求 转 发 给 相 应 的 A c t i o n调 用 业 务 逻 辑 层 方 法 处 理 请 求将 处 理 结 果 返 回 给 客 户 端 图 的工作原理流程图 9 Struts 的性能及应用前景分析 由于采用了核心控制器读取配置文件 来处理转发来自客户端的请求,所以在时间性能上相较于纯 servlet 架构 Web 的应用来说,那应该是没办法比的。 后者由于是直接由 servlet 接受处理客户端请求并转发处理结果,所以执行效率相较于 来说高了不止一个层次。 另外, Struts2 由于采用了值栈、 OGNL 表达式、 struts2 标签库等,这都会导致系统的性能下降。 如果避免或减少使用这些,性能相对来说应该还是很好了。 作为 Apache 用 Struts 和 WebWork 组合出来的新产品,引进了不少新思想、概念和功能,使得其在目前 大量的开源 MVC 框架中呈现一个强劲的上升势头。 Hibernate 框架 Hibernate 概述 Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。 在 Java 世界中, Hibernate 可以说是在众多 ORM 软件中获得关注最多、使用最广泛的框架。 它成功地实现了透明持久化,以面向对象的 HQL 封装了 SQL,为开发人员提供了一个简洁、灵活且面向对象的数据访问接口。 Hibernate 的 核心接口一共有 6 个,分别为 :Session、 SessionFactory、Transaction、 Query、 Criteria 和 Configuration。 这 6 个核心接口在任何开发中都会用到。 通过这些接口,不仅可以对持久化 对象 进行存取,还能够进行事务控制。 下面对这 6 个核心接口分别加以介绍。 Session 接口 Session 接口负责执行被持久化对象的 CRUD 操作 (CRUD 的任务是完成与 数据库 的交流,包含了很多常见的 SQL 语句。 )。 但需要注意的是Session 对象是非线程安全的。 同时, Hibernate 的 session 不同于 JSP 应用中的 HttpSession。 这里当使用 session 这个术语时,其实指的是 Hibernate 中的session,而以后会将 HttpSession 对象称为用户 session。 10 SessionFactory 接口 SessionFactory 接口负责初始化 Hibernate。 它充当数据存储源的代理,并负责创建 Session 对象。 这里用到了工厂模式。 需要注意的是 SessionFactory 并不是轻量级的,因为一般情况下,一个项目通常只需要一个 SessionFactory 就够,当需要操作 多个数据库时,可以为每个数据库指定一个 SessionFactory。 Configuration 类 Configuration 类负责配置并启动 Hibernate,创建SessionFactory 对象。 在 Hibernate 的启动的过程中, Configuration 类的实例首先定位映射文档位置、读取配置,然后创建 SessionFactory 对象。 Transaction 接口 Transaction 接口负责事务相关的操作。 它是可选的,开发人员也可以设计编写自己的底层事务处理代码。 Query和 Criteria接口 Query和 Criteria接口负责执行各种数据库查询。 它可以使用 HQL 语句或 SQL 语句两种表达方式。 Hibernate 的 ORM技术介绍 ORM 就是利用描述对象和数据库之间映射的元素据,自动(且透明)地把 Java应用程序中的对象持久化到关系数据库的表中。 ORM 本质上是把数据从一种表示法 (可逆 )转化为另一种表示法进行工作,这意味着将损失某些性能。 然而,如果ORM 作为中间件实现,就有许多手工编码的持久层所没有的优化机会。 控制转换的元数据的规定和管理在开发时增加了企业的日常开支,但 是其成本却少于维护一个手工编码的解决方案所需成本。 使用 ORM,应用程序与 ORM API 和领域模型类交互,并从底层的 SQL/JDBC中被抽象出来。 依赖于这些特性或者特定的实现, ORM 引擎还可以处理如乐观锁和高速缓存这类问题,这就完全免去了应用程序对这些问题的关注。 ORM 框架通常都会实现一个功能强大的类,其主要作用是管理处于持久化状态的域对象,提供通用数据访问方法,优化数据访问性能。 在数据库事物被提交时,它会有选择性地只提交发生变化的对象,而且这类提交工作自动进行,对访问方法完全透明;另外,它也提供缓存功 能,即在反复提取同样的对象时,不必每次都建立数据库连接,对象可以直接从缓存中提取从而显著提高了性能。 ORM 除了封装底层数据访问代码、提供透明持久化功能外,还对 SQL 进行进 11 一步的封装。 另外,作为一种轻量级的对象持久化解决方案, ORM 既可以运行在容器 (如 Spring)管理的环境中,使用容器提供的数据库连接池和事物管理机制等服务;也可以脱离容器,在无容器管理的环境下运行,这时 ORM 将使用自身提供的数据库连接池和事物管理机制等服务。 这样的设计,首先极大地提高了使用 ORM 开发项目的灵活性,涵盖了几乎所有的框架类型 的项目。 其次,提供了软件的可测试性,也就是说软件在应用服务器上运行但却在服务器之外测试。 最后 ORM 在力图为关系型数据库披上一件美丽的面向对象的外衣时,为关系型数据库添加了本应属于面向对象数据库的功能,例如透明持久化、面向对象查询语言等,在面向对象编程语言和关系型数据库之间找到了一个很好的结合点。 Hibernate 的体系结构 从图 , Hibernate是使用数据库和配置信息来为应用程序提供持久化服务(以及持久的对象)的。 Hibernate在整个应用系统中是处于数据库和应用程序之间的 位置,向上可以把程序中的持久化对象映射在相应的映射配置文件当中,向下可以通过 ORM技术把映射配置文件中的数据对象持久化到各种数据库中。 Hibernate对每一种数据库有对应的 Dialect进行操作优化,从而提高它在各种情况下的效率。 支持的数据库有 Oracle, DB2, MySql, Microsoft SQL Server。 它可以和多种 Web服务器或者应用服务器良好集成,使得开发者可以根据不同的需要来选择 Web服务器。 A p p l i c a t i o nH i b e r n a t eP e r s i s t O b j e c t sH i b e r n a t e . p r o p e r t i e s X M L M a p p i n gD a t a b a s e 图 Hibernate 体系结构图 12 Hibernate 的性能及应用前景分析 Hibernate 由于是对 JDBC 进行了轻量级的封装,因此在很多情况下Hibernate 的性能都比直接使用 JDBC 存取数据库要低。 然而,通过正确的方法和策略,使用 Hibernate 时,还是非常接近直接使用 JDBC 时的效率,而且在有些情况下,还有可能高于使用 JDBC 时的执行效率。 在进行 Hibernate 性能优化时需要从以下几个方面考虑:数据库设计调整、 HQL 优化、正确使用 API(如根据不同的业务类型选用不同的集合及查询 API)、配置参数(日志、查询缓存、fetch_size、 batch_size 等)、映射文件优化 (ID 生成策略、二级缓存、延迟加载、关联优化 )、一级缓存优化、二级缓存优化与事务控制策略。 Hibernate 自发布以来大受欢迎,目前有成千上万的程序员学习和使用它来开发商业级的应用。 经过多年的发展, Hibernate 已经非常优秀而且变得越来越成熟了。 Spring 框架 Spring 体系结构概述 Spring 是一个开源框架,是开发者为了解决企业应用开发的复杂性问题而创建。 使用基本的 JavaBean 来完成以前只能由 EJB 完成的工作,并提 供了许多企业应用功能。 然而, Spring 用途不仅限于服务器端的开发,从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从中受益。 Spring 主要是业务层框架,主要特点是 Ioc 和 AOP 等概念的融合,强项在于 AOP。 Spring 框架式一个分层架构,由 7 个定义良好的模块组成。 Spring 的各个模块构建在核心容器之上,核心容器定义了创建、配置和管理 Bean 的方式。 其整个体系结构如图 所示。 13 A O P元 素 据 及 动 态代 理 实 现O R M支 持 H i b e r n a t e 、J D O 、 i B a t i S 、T o p l i n kS p r i n g D A O 事 物 、D A O 、 J D B CW e b 上 下 文W e b 应 用 环 境 和 开发 工 具 类S p r i n g 上 下 文校 验 、 J N D I 、M a i l 、 任 务 等M V C 框 架核 心 容 器B e a n 容 器 及 支 持 工 具 图 Spring 体系结构图 组成 Spring框架的每个模块 (或组件 )都可以单独存在,或者与其他一个或 多 个模块联合实现。 几个主要模块的功能如下: 核心容器:核心容器提供 Spring框架的基本功能。 核心容器的主要组件是。基于j2ee技术的团购网站的设计与实现
相关推荐
丽亚娜、桃丽娜。 5 u2 V4 q( t7 z3 G6 M 综合论述题: ! x. r e2 q r _8 C1 @ q3 w 分析答尔丢夫的形象及其社会意义。 2 ~amp。 jamp。 o。 \$ Q$ R2 i$ x o伪善的没落贵族,职业宗教骗子。 3 ?/ ?9 hamp。 ]8 Yamp。 Y 1 表里不一:表面上虔诚教士 “ 把世界看成粪土一般 ” ,实际上是贪图享乐的酒肉之徒。
FoLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointse11111111111111111111111111111111lectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPocti
针对用户特点提供良好的人机操作界面 ,以便用户给出规范的 兴趣偏好,同时记录 用户的访问模式和兴趣偏好, 与用户兴趣模型管理Agent 进行通信, 为用户信息的收集、 用户兴趣模型 的建立和更新提供信息 , 为 整个推荐 系统个性化服务提供依据。 其二, 用户界面 Agent 将 推荐 引擎 Agent 获得的推荐结果主动通知给用户 浏览,并提供评价反馈窗口, 由用户对推荐结果进行评价反馈。
ely wanted. When the sharks attack the fish, it is as same as the sharks attacking his dignity. This is mostly why an elderly man, armed only with crude weapons would fight many sharks. As the sharks
类的层次结构和相互关系,确定类与类之间的继承关系;表示类或对象之间的继承以外的关系;为类或对象 进行实际 建模和确认;反复对已有分析 设计 成果进行再分析,直至 确定 完成 面向对象的 信息系统建模 [8]。 面向对象的分析方法的一般步骤为:提取用户 对待开发 系统的需求,包括应用场景和用例情况, 以构造系统需求模型;以基本的用户需求为依据,选择类和对象,包括对 应的属性和操作 ;定义类 的
的新记录;数字 3表示只读方式,但当前记录可以自由移动。 一般选择 2为好,除非为了禁止数据被修改; Command:负责执行查询 并返回条件符合的所有记录(返回值为 Recordset 第 6 页 共 23 页 对象)。 ⑵ 数据库连接的 ASP程式码如下 : Dim Conn Set Conn=() =DRIVER={MicrosoftAccess DRIVER(*.mdb) }。 amp。