基于ssh2的电子商务购书系统的设计与实现毕业设计论文(编辑修改稿)内容摘要:

全需求分析。 青海民族大学毕业论文 第三章: 介绍系统的详细设计,包括设计的原则,架构的选择,功能模块的设计,业 务流程的设计。 第四章: 介绍 系统 数据库的详细设计。 第五章:介绍系统主要功能模块的实现。 青海民族大学毕业论文 1 相关技术简介 本章主要介绍了本系统用到相关技术,包括 Struts2, Spring, Hibernate, JQuery,AJAX。 SSH2 框架 本 系统主要实现 B2C 购书系统所需要的一些基本功能,采用目前流行的 Java语言开发。 前端使用 JSP+CSS+JavaScript+JQuery,后台采用 MVC 三层架构开发模式。 采用 Struts2+Spring+Hibernate 三大框架来开发本系统。 集成开发环境 采用,数据库使用 , Web 服务器选择。 Struts2 Struts 2 是现在比较流行的一个开源的功能强大的应用框架,它是 Struts 的下一代产品,是在 Struts1 和 WebWork 的技术基础上进行了合并的全新的 Struts 2框架。 其全新的 Struts 2 的体系结构与 Struts 1 的体系结构的差别巨大。 Struts 2以 WebWork 为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与 Servlet API 完全脱离开,所以 Struts 2 可以理解为WebWork 的更新产品。 虽然从 Struts 1 到 Struts 2 有着太大的变化,但是相对于WebWork, Struts 2 只有很小的变化。 Struts2 的体系与 Struts1 体系的差别非常大,因为 Struts2 使用了 WebWork的设计核心,而不是 Struts1 的设计核心。 Struts2 中大量使用拦截器来处理用户的请求,从而允许用户的业务逻辑控制器与 Servlet API 分离。 Struts2 框架的大概处理流程如下: 1) 加载类( FilterDispatcher) 2) 读取配置( Struts 配置文件中的 Action) 3) 派发请求( 用户 端发送请求) 4) 调用 Action( FilterDispatcher 从 Struts 配置文件中读取与之相对应的Action ) 5) 启用拦截器( WebWork 拦截器链自动对请求应用通用功能,如验证) 6) 处理业务(回调 Action 的 execute()方法) 7) 返回响应(通过 execute 方法将信息返回到 FilterDispatcher) 青海民族大学毕业论文 8) 查找响应( FilterDispatcher 根据配置查找响应的是什么信息如:SUCCESS、 ERROR,将跳转到哪个 JSP 页面) 9) 响应用户( 流程图如 图 11 所示 ) [6] 图 11 Strut2 的访问流程图 Spring Spring 是一个开源框架,它由 Rod Johnson 创建。 它是为了解决企业应用开发的复杂性而创建的。 Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。 然而, Spring 的用途不仅限于服务器端的开发。 从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益 [7]。 1) 目的:解决企业应用开发的复杂性 2) 功能:使用基本的 JavaBean 代替 EJB,并提供了更多的企业应用功能 3) 范围:任何 Java 应用简单来说, Spring 是一个轻量级的控制反转( IOC)和面向切面( AOP)的容器框架。 4) 轻量 —— 从大小与开销两方面而言 Spring 都是轻量的。 完整的 Spring 框架可以在一个大小只有 1MB 多的 JAR 文件里发布。 并且 Spring 所需的处理开销也是微不足道的。 此外, Spring 是非侵入式的:典型地, Spring 应用中的对象不依赖于 Spring 的特定类。 5) 控制反转 —— Spring 通过一种称作控制反转( IOC)的技术促进了松耦合。 青海民族大学毕业论文 当应用了 IOC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。 你可以认为 IOC 与 JNDI 相反 —— 不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。 6) 面向切面 —— Spring 提供了面向切面编程的丰富支持,允许通过分离应用的 业 务逻辑与系统级服务(例如审计( auditing)和事务( transaction)管理)进行内聚性的开发。 应用对象只实现它们应该做的 —— 完成业务逻辑 —— 仅此而已。 它们并不负责(甚至是意识)其它的系统及 关注点,例如日志或事务支持。 7) 容器 —— Spring 包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个 bean 如何被创建 —— 基于一个可配置原型( prototype),你的 bean 可以创建一个单独的实例或者每次需要时都生成一个新的实例 —— 以及它们是如何相互关联的。 然而, Spring 不应该被混同于传统的重量级的 EJB 容器,它们经常是庞大与笨重的,难以使用。 8) 框架 —— Spring 可以将简单的组件配置、组合成为复杂的应用。 在 Spring中,应用对象被声明式地组合,典型地是在一个 XML 文件里。 Spring 也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。 所有 Spring 的这些特征使编程人员 能够编写更干净、更可管理、并且更易于测试的代码。 它们也为 Spring 中的各种模块提供了基础支持 [8]。 Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate 可以应用在任何使用 JDBC 的场合,既可以在 Java 的 用户 端程序使用,也可以在 Servlet/JSP 的 Web 应用中使用,最具革命意义的是, Hibernate可以在应用 EJB 的 J2EE 架构中取代 CMP,完成数据持久化的重任 (概要图如图 12 所示) [9]。 青海民族大学毕业论文 图 12 Hibernate 体系结构概要图 Hibernate 的核心接口一共有 6 个,分别为 :Session、 SessionFactory、Transaction、 Query、 Criteria 和 Configuration。 这 6 个核心接口在任何开发中都会用到。 通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。 下面对这 6 个核心接口分别加以介绍 [10]。 Session接口负责执行被持久化对象的 CRUD操作 (CRUD的任务是完成与数据库的交流,包含了很多常见的 SQL 语句。 )。 但需要注意的是 Session 对象是非线程安全的。 同时, Hibernate 的 session 不同于 JSP 应用中的 HttpSession。 这里当使用 session 这个术语时,其实指的是 Hibernate 中的 session,而以后会将HttpSession 对象称为用户 session。 SessionFactory 接口负责初始化 Hibernate。 它充当数据存储源的代理,并负责创建 Session 对象。 这里用到了工厂模式。 需要注意的是 SessionFactory 并不是轻量级的,因为一般情况下,一个项目通常只需要一个 SessionFactory 就够,当需要操作多个数据库时,可以为每个数据库指定一个 SessionFactory。 Configuration 类负责配置并启动 Hibernate,创建 SessionFactory 对象。 在Hibernate 的启动的过程中, Configuration 类的实例首先定位映射文档位置、读取配置,然后创建 SessionFactory 对象。 Transaction 接口 Transaction 接口负责事务相关的操作。 它是可选的,开发人员也可以设计编写 自己的底层事务处理代码。 Query 和 Criteria 接口负责执行各种数据库查询。 它可以使用 HQL 语言或SQL 语句两种表达方式。 SSH2 整合框架 青海民族大学毕业论文 Hibernate 是持久层的解决方案, Struts2 是表现层的解决方案, Spring 是一个集成框架。 使用 Spring 的 IOC 容器,来管理数据访问对象,业务逻辑对象,Action 对象的依赖关系,结合面向接口编程,可以让对象之间完全解耦;利用Spring 的 DAO 支持,可以简化 Hibernate 的数据访问操作;使用 Spring 的事务管理,无须应用服务器就可以使用声明式事务( SSH2 的软件分层结构中的位置如图所示) [11]。 表 现 层 ( S t r u t s 2 )业 务 逻 辑 层持 久 层 ( H i b e r n a t e )关 系 数 据 库S p r i n g 图 13 SSH2 在软件分层结构中的位置 前端技术 技术 JQuery 是继 prototype 之后又一个优秀的 JavaScript 框架。 它是轻量级的 js库 (压缩后只有 21k) ,它兼容 CSS3,还兼容各种浏览器( IE +FF +Safari +Opera +)。 JQuery 使用户能更方便地处理 HTML documents、 events、实现动画效果,并且方便地为网站提供 AJAX 交互。 JQuery 还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。 JQuery 能够使用户的 html 页保持代码和 html 内容分离,也就是说,不用再在 html里面插入一堆 js 来调用命令了,只需定义 id 即可 [12]。 技术 AJAX 指异步 JavaScript 及 XML( Asynchronous JavaScript And XML)。 AJAX 的核心是 JavaScript 对象 XmlHttpRequest。 该对象在 Inter Explorer 5 中青海民族大学毕业论文 首次引入,它是一种支持异步请求的技术。 简而言之, XmlHttpRequest 可以使用JavaScript 向服务器提出请 求并处理响应,而不阻塞用户。 AJAX 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术[13]。 传统的 web 应用允许用户填写表单 (form),当提交表单时就向 web 服务器发送一个请求。 服务器接收并处理传来 的表单,然后返回一个新的网页。 这个做法浪费了许多带宽,因为在前后 两个页面中的大部分 HTML 代码往往是相同的。 由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。 这导致了用户界面的响应比本地应用慢得多。 与此不同, AJAX 应用可以仅向服务器发送并取回必需的数据,它使用 SOAP 或其它一些基于 XML的 web service 接口,并在 用户 端采用 JavaScript 处理来自服务器的响应。 因此在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。 同时很多的处理工作可以在发出请求的 用户 端机器上完成,所以 Web 服务器的处理时间也减少了。 使用 AJAX 的最大优点,就是能在不更新整个页面的前提下维护数据。 这使得 Web 应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。 AJAX 不需要任何浏览器插件,但需要用 户允许JavaScript 在浏览器上执行。 就像 DHTML 应用程序那样, AJAX 应用程序必须在众多不同的浏览器和平台上经过严格的测试。 随着 AJAX 的成熟,一些简化AJAX 使用方法的程序库也相继问世。 同样,也出现了另一种辅助程序设计的技术,为那些不支持 JavaScript 的用户提供替代功能 [14]。 对应用 AJAX 最主要的批评就是,它可能破坏浏览器后退按钮的正常行为。 在动态更新页面的情况下,用户无法回到前一个页面状态,这是因为浏览器仅能记下历史记录中的静态页面。 一个被完整读入的页面与一个已经被动态修改过的页面之 间的差别非常微妙;用户通常都希望单击后退按钮,就能够取消他们的前一次操作,但是在 AJAX 应用程序中,却无法这样做。 不过开发者已想出了种种办法来解决这个问题,当中大多数都是在用户单击后退按钮访问历史记录时,通过建立或使用一个隐藏的 IFRAME来重现页面上的变更。 (例如,当用户在 Google Maps 中单击后退时,它在一个隐藏的 IFRAME 中进行搜索,然后将搜索结果反映到 AJAX 元素上,以便将应用程序状态恢复到当时的状态。 ) [15] 青海民族大学毕业论文 AJAX 在浏览器与 Web 服务器之间使用异步数据传输( HTTP 请求),。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。