基于j2ee网上购书系统的设计与实现毕业论文(编辑修改稿)内容摘要:
有时候,问题部分会包括使用模式必须满足的一系列先决条件。 13 (solution) 描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式 [37]。 因为模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象组合)来解决这个问题。 (consequences) 描述了模式应用的效果及 使用模式应权衡的问题。 尽管我们描述设计决策时,并不总提到模式效果,但它们对于评价设计选择和理解使用模式的代价及好处具有重要意义 [38]。 软件效果大多关注对时间和空间的衡量,它们也表述了语言和实现问题。 因为复用是面向对象设计的要素之一,所以模式效果包括它对系统的灵活性、扩充性或可移植性的影响,显式地列出这些效果对理解和评价这些模式很 有帮助。 设计模式的作用 外 观( Facade):为了系统中的一组功能调用提供一个一致的接口,这个接口使 得这一子系统更加容易使用; 装饰( Decorate):当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能; 单件( Singleton):保证一个类仅有一个实例,并提供一个访问他的全局访问点; 模板方法( Template Method):在方法中定义算法的框架,而将算法中的一些操作步骤延迟到子类中实现。 模式( pattern)就是做事的一种方法,也即实现某个目标的途径,或者技术。 这种捕获有效技术的思 想可以应用到许多领域当中,比如烹饪、生产焰火制品、开发软件以及其他一些行业。 对于任何一个正迈 向成熟的行业,人们总会开始寻找一些通用和有效的方法,来达到目标并解决不同场合中的问题。 由某个行业的从业人员组成的社区通常会发明一些专业术语,以便于同行之间进行交流。 这其中的某些专业术语将称为模式,即实现特定目标的公认技术。 随着某个行业及其专业术语的发展,一些作者便开始起到重要的作用。 他们将某个行业的模式记录14 归档,参与标准化专业术语,并且公开传播这些有效的技术 [32]。 设计模式的好处 对不断重复出现问题,复用既有的、高质量的解决方案 确立通用的术语,改善团队内的沟通。 提升思考层次 判断设计是 否正确,而不仅仅是能够奏效 改善个人学习和团队学习 提高代码的可修改性和可维护性 采用更佳设计方案,即使没有明确使用模式 发现巨型继承层次结构的代替放案 系统使用的框架与技术 设计模式和框架 现在,可复用面向对象软件系统现在一般划分为三大类:应用程序、工具箱和框架 (Framework),我们平时开发的具体软件都是应用程序; Java 的 API 属于工具箱。 而框架是构成一类特定软件可复用设计的一组相互协作的类。 EJB( Enterprise JavaBeans)是 Java 应用于企业计算的框架。 框架通常定义了应用体系的整体结构类和对象的关系等等设计参数,以便于具体应用实现者能集中精力于应用本身的特定细节。 框架主要记录软件应用中共同的设计决策,框架强调设计复用,因此框架设计中必然要使用设计模式 [4]。 另外,设计模式有助于对框架结构的理解,成熟的框架通常使用了多种设计模式,如果你熟悉这些设计模式,毫无疑问,你将迅速掌握框架的结构,我们一般开发者如果突然接触 EJB、 J2EE 等框架,会觉得特别难学,难掌握,那么转而先掌握设计模式,无疑是给了你剖析 EJB 或 J2EE 系统的一把利器。 软件框架( Frameworks)和设计模式易被混淆。 它们两者时紧密相关的。 下表列出了两者的相似点和不同点 [10][19]。 15 Struts 框架 Struts 概述 Struts 是在 JSP Model2 的基础上实现的一个 MVC 框架,它很好的结合了 Jsp, Java Servlet, Java Bean, Taglib 等技术。 结构如图 22。 在 struts 框架中,模型分为两个部分: 系16 统的内部状态 可以改变状态的操作(事务逻辑) 内部状态通常 由一组 ActionForm JavaBean 表示。 根据设计或应用程序复杂度的不同,这些 Bean 可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。 大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的 bean 调用。 比如购物车 cart,它拥有用户购买商品的信息,可能还有 addCart()方法用来 添加购物车信息 ,并向仓库发定货信息。 小型程序中,操作可能会被内嵌在 Action 类,它是 struts 框架中控制器角色的一部分。 当逻辑简单时这个方法很适合。 建议用户将事务逻辑(要做什么)与 Action 类所扮演的角色(决定做什么)分开。 选择 Struts 的原因 简单、易懂。 容易被人采用,功能强大。 视图 控制器 (MVC)设计模式,使用 struts 可以开发使用JAVAServlets 和 JavaServer Pages 的高性能、面向事务的 WEB 应用程序。 提供的模型 2 体系结构,视图层 事务处理层 数据模型层,通过明确的应用程序分工使得事务逻辑和显示逻辑彼此相互独立,视图层 (html,JSP)将用户所需要的任何数据向事务处理层 (servlet)发送请求,事务处理层将根据请求处理相关事务 (包括处理请求,验证数据等 ),将用户所需要的数据提交到数据模型层,数据模型层从数据库取得数据再反馈给事务处理层,由事务处理层传递给视图层显示数据信息。 提供强大的自定义标签库 (taglib),编程人员可以根据需要编写各种类型的标签。 本身自带的 validator 框架, tiles 和 jstl 标记库标记,更能为编程人员提供方便,提高编程效率。 更能使整个项目结构性良好、清晰,便于维护。 能很好的与 hibernate、 spring 整合 17 Struts 框架对应客户请求的工作流程如下。 判断 ActionMapping 实例是 否存在。 如果 实例不存在, 则创建一个ActionMapping 对象,它包含了把请求转发给哪个 Action 的消息。 判断 ActionForm 实例是否存在。 如果实例不存在,则创建一个 ActionForm 对象,并把客户提交的表单数据保存到 ActionForm 对象中。 根据配置信息决定是否需要表单验证。 如果需要验证,就调用 ActionForm 的 validate()方法。 如果ActionForm 的 validate()方法返回 null,或返回一个不包含 ActionMessage 的ActionErrors 对象,就表示表单验证成功。 如果 ActionForm 的 validate()方法 返回18 一个或多个 ActionError 的 ActionErrors 对象,则表示表单验证失败,将直接把请求转发给包含客户提交表单的 JSP 组件。 在这种情况下,不会再创建 Action 对象并调用 Action 的 execute 方法。 ActionServlet 根据配置信息决定将请求转发给哪个Action。 如果相应的 Action 实例不存在,就先创建这个实例,然后调用其 execute方法。 Action 的 execute 方法返回一个 ActionForward 对象, ActionServlet 再把客户请求转发给 ActionForward 对象指向的 JSP 组件。 ActionForward 对象指向的 JSP组件生成动态网页,返回给客户。 Hibernate 框架 Hibernate 概述 Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate 可以应用在任何使用 JDBC 的场合,既可以在 Java 的客户端程序使用,也可以在 Servlet/JSP 的 Web 应用中使用,最具革命意义的是, Hibernate 可以在应用 EJB 的 J2EE 架构中取代 CMP,完成数据持久化的重任 [20]。 Hibernate 的核心接口一共有 5 个,分别为: Session、 SessionFactory、 Transaction、Query 和 Configuration。 这 5 个核心接口在任何开发中都会用到。 通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。 下面对这五的核心接口分 别加以介绍 [28]。 Session 接口: Session 接口负责执行被持久化对象的 CRUD 操作 (CRUD 的任务是完成与数据库的交流,包含了很多常见的 SQL 语句。 )。 但需要注意的是 Session 对象是非线程安全的。 同时, Hibernate 的 session 不同于 JSP应用中的 HttpSession。 这里当使用 session 这个术语时,其实指的是Hibernate 中的 session,而以后会将 HttpSesion 对象称为用户 session。 SessionFactory 接口: SessionFactroy 接口负责初 始化 Hibernate。 它充当数据存储源的代理,并负责创建 Session 对象。 这里用到了工厂模式。 需要注意的是 SessionFactory 并不是轻量级的,因为一般情况下,一个项目通常只需要一个 SessionFactory 就够,当需要操作多个数据库时, 可以为每个数据库指定一个 SessionFactory。 19 Configuration 接口: Configuration 接口负责配置并启动 Hibernate,创建 SessionFactory 对象。 在 Hibernate 的启动的过程中, Configuration 类的实例 首先定位映射文档位置、读取配置,然后创建 SessionFactory 对象。 Transaction 接口: Transaction 接口负责事务相关的操作。 它是可选的,可发人员也可以设计编写自己的底层事务处理代码。 Query 和 Criteria 接口: Query 和 Criteria 接口负责执行各种数据库查询。 它可以使用 HQL 语言或 SQL 语句两种表达方式。 选择 Hibernate 的原因 一、 Hibernate 是 JDBC 的轻量级的对象封装,它是一个独立的对象持久层框架,和 App Server,和 EJB 没有 什么必然的联系。 Hibernate 可以用在任何 JDBC 可以使用的场合,例如 Java 应用程序的数据库访问代码, DAO 接口的实现类,甚至可以是 BMP 里面的访问数据库的代码。 从这个意义上来说, Hibernate 和 EB 不是一个范畴的东西,也不存在非此即彼的关系。 二、 Hibernate是一个和 JDBC密切关联的框架,所以 Hibernate的兼容性和 JDBC驱动,和数据库都有一定的关系,但是和使用它的 Java 程序,和 App Server 没有任何关系,也不存在兼容性问题。 三、 Hibernate 不能用来直接和 Entity Bean 做对比,只有放在整个 J2EE 项目的框架中才能比较。 并且即使是放在软件整体框架中来看, Hibernate 也是做为 JDBC的替代者出现的,而不是 Entity Bean 的替代者出现的,让我再列一次我已经列 n次的框架结构 [29]: 传统的架构: 1) Session BeanEntity BeanDB 为了解决性能障碍的替代架构: 2) Session BeanDAOJDBCDB 使用 Hibernate 来提高上面架构的开发效率的架构: 3) Session BeanDAOHibernateDB 就上面 3 个架构来分析 [39]: 内存消耗:采用 JDBC 的架构 2 无疑是最省内存的, Hibernate 的架构 3 次20 之, EB 的架构 1 最差。 运行效率:如果 JDBC 的代码写的非常优化,那么 JDBC 架构运行效率最高,但是实际项目中,这一点几乎做不到,这需要程序员非常精通 JDBC,运用Batch 语句,调整 PreapredStatement 的 Batch Size 和 Fetch Size 等参数,以及在必要的情况下采用结果集 cache 等等。 而一般情况下程序员是做不到这一点的。 因此Hibernate 架构表现出最快的运行效率。 EB 的架构效率会差的很远。 开发效率:在有 JBuilder 的支持下以及简单的项目, EB 架构开发效率最高, JDBC 次之, Hibernate 最差。 但是在大的项目,特别是持久层关系映射很复杂的情况下, Hibernate 效率高的惊人, JDBC 次之,而 EB 架构很可能会失败。 分布式,安全检查,集群,负载均衡的支持由于有 SB。基于j2ee网上购书系统的设计与实现毕业论文(编辑修改稿)
相关推荐
2 手机客户端流程图 第 5 页 共 27 页 ( 2) J2ME 手机客户端的系统流程图,如图 2 所示。 用户查询流程分为查询内容选择、查询信息输入和信息接收 3 个步骤。 从该流程图中可以看出,按起点终点查询是整个系统最重要的一部分,也是本系统最能体现算法的一部分,经过对成都公交系统的观察和分析,本系统提 出了一次换乘时采用基于站点优先级和邻接矩阵的公交换乘算法
msuit 启动线程显示时间 Thread th 进入定时系统 Command cmdOk 退出整个程序 Command cmdCan 表 TimeCanvas 类方法表 名称 功能 备注 TimeCanvas () 连接图片添加数据 类的构造方法 paint(Graphics g) 绘制开始界面 Canvas 类自带方法 initList() 初始化数据 刷新数据 run() 获取时间和数据
了详细说明。 系统测试 介绍了测试计划并从功能方面进行 测试。 最后 对 本游戏 的应用展望 未来。 本章首先简单地介绍手机移动游戏的开发背景、手机游戏的市场状况、用户数量、社会对游戏的反映。 进而发现 了当前一些游戏的弊端,因此提出了绿色健康的益智游戏这个论题。 最后,叙述了本游戏的开发意义和论文的组织安排。 3 2 相关技术与工具介绍 J2ME 简介 J2ME 在 Java 体系中的地位
查显示,有 %的受访者涉足嵌入式 /移动设备应用开发,这个数字可能略高于实际的比例,但也足可说明嵌入式 /移动设备应用开发是一块诱人的新鲜奶酪。 目前的移动开发技术大体分为三个阵营:首当其冲的便是由 SUN 公司提出的 ,与具体操作系统无关的 ,已得到各种设备广泛支持的 J2ME 技术,还有就是主要由 NOKIA公司倡导的 ,主要使用 C++语言的基于 Symbian 操作系统 的开放应用平台
未登录,则转到登录页面,登录成功后自动到个人中心基本资料页。 输出 用户中心页面。 6 表 7 修改账户 Table7 Account modify 名称 用户资料修改 操作角色 注册用户 功能描述 修改登录用户自己的资料。 操作 1. 在用户中心点击“修改资料”进入用户资料修改。 2. 用户名不可以修改,可修改昵称。 3. 验证参考用户注册。 4. 点击“重置”可以把表单上用户资料恢复到初始值
..................................................................................42 测试结论 .............................................................................................................