1、 1 2009 年 6 月 9 日 摘 要 随着信息高速公路的建立, Internet 的普及,网络技术的迅猛发展,人类社会已经进入了一个信息化社会。 电子商务指利用简单、快捷、低成本的电子通讯方式,买卖双方通过网络进行各种商贸活动的一种商业交易模式。随着互联网的发展,以及人们消费观念和生活方式的改变,这种新型的商业模式逐渐融入了人们的生活中。通过企业的门户网站,人们可以足不出户的寻找自己所需的物品,通过对不同虚拟商城的访问,“顾客”可以找出性价比最高的商品,自己有极大地选择空间;通过下订单,你可以很快得到自己想要的物品,这给顾客节省很多时间和精力;对于厂家来说,可以极大地降低库存风险,可根据
2、客户需要,按需采购和生产,大大地提高了效益。 本毕业设计的内容是 设计并且实现一个基于 web 技术的在线交易系统。系统主要以 j2EE 作为开发基础 ,使用了 struts+spring+hibernate 等多种协议或技术,用 eclipse 作为开发工具,以Macromedia 公司的 Dreamweaver 作为界面美化工具。基本实现了网上交易系统应有的主要功能模块 ,包括:管理员的登录,管理和维护;用户注册、登录、注销,个人信息的查询、修改;商品管理,购物车管理,订单管理。该系统界面简单、操作方便,容易维护。 关键词:电子商务 j2EE struts + spring + hiber
3、nate 2 Development of an Online Trading System Based on Java Technology Abstract With the establishment of high way of information, the popularization of Internet and the rapid development of network technology, human society has entered a society of information. E-commerce is a new business transac
4、tion, through which both buyers and sellers can use a simple, fast and low-cost means of electronic and communication. With the development of the Internet, and peoples consumption idea and the way of life changing, this new business model has gradually integrated into peoples lives. Through the por
5、tal site of enterprise, people can look up the goods which they required without going out; through the different virtual mall visit, people can find the most cost-effective products, and they have much self-choice; through orders, people can find the things which they need, and quickly get the prod
6、ucts which they ordered. This new business modle can save a lot of time and energy for custormers, and greatly reduce inventory risk of manufaturers. The manufactures can procure and produce according to customer needs, this was called on-demand procurement and production, which greatly improved the
7、 efficiency. The subject of this graduation project is designing a web-based online trading system. This system mainly uses j2EE as the basis of development, and also use the struts + spring + hibernate technologies and other orders. This project use eclipse as the developme nt tools, and Macromedia
8、s Dreamweaver as the interfaces landscaping tools. The basic functions of an online trading system have been implemented, which include administrator login, management and maintenance; user registration, login, write-offs personal information enquiries and amendments; commodity management, cart mana
9、gement, order management. Interface of the system is simple, it can be used and maintained easily. Key words: E-commerce j2EE struts + spring + hibernate 3 6 目录 摘 要 II Abstract III 第一章 引言 . 6 1.1 课题背景 . 6 1.2 课题目的和意义 . 6 1.3 本文结构 . 6 第二章 系统应用的关键技术 . 7 2.1 JSP 技术介绍 . 7 2.1.1 JSP 的概述 . 7 2.1.3 JSP 的强势
10、与劣势 . 8 2.1.4 JSP 与 ASP 的比较 . 9 2.2 Java 组件 JavaBeans. 9 2.2.1 什么是 JavaBeans. 9 2.2.2 JSP 与 JavaBeans 的关系 . 10 2.3 J2EE 概述 . 10 2.4 关于 Struts. 11 2.4.1 Struts 简介 . 11 2.4.2 Struts 的主要功能 . 11 2.5 关于 Spring. 13 2.5.1 Spring 简介 . 13 2.5.2 为什么需要 Spring. 14 2.5.3 Spring 带给我们什么 . 14 2.6 关于 Hibernate. 15 2
11、.6.1 为什么引入 hibernate. 15 2.6.2 使用 Hibernate 的好处 . 15 2.6.3 Hibernate 的工作原理 . 15 2.7 Mysql 17 2.7.1 mysql 的特点 . 17 2.7.2 mysql 的安装和配置(部分截图) . 17 2.8 Tomcat 服务器 . 19 2.8.1 Tomcat 服务器简介 . 19 2.8.2 Tomcat 的特点 . 19 2.8.3 Tomcat 的优势 . 19 2.8.4 Tomcat 服务器的安装和配置 . 19 小结 20 第三章 系统需求分析和总体设计 . 21 3.1 系统功能需求 .
12、21 4 3.2 系统角色及 其功能分析 . 22 3.2.1 系统的 3 个角色: . 22 3.2.2 系统角色的功能 . 22 3.3 总体设计思想概述 . 22 3.4 数据库设计 . 23 3.4.1 E-R 图 . 23 3.4.2 数据表的设计 . 24 3.5 系统的类设计 . 26 3.5.1 DAO 类设计 . 26 3.5.2 POJO 类设计(部分) . 27 3.5.3 过滤器类设计 . 27 3.5.4 监听器类设计 . 28 3.6 系统的用例图 . 28 3.6.1 总体用例分析 . 28 3.6.2 用户管理用例分析 . 29 3.6.3 购物车管理用例分析
13、. 30 小结 31 第四章 系统的详细设计 . 31 4.1 数据库与 POJO 映射的实现 . 31 4.2 主要模块的设计说明与界面 . 33 4.2.1 用户管理模块 . 33 4.2.2 购物车管理模块 . 38 4.2.3 定单模块 . 43 4.3 系统的测试 . 47 小结 48 第五章 总结与展望 . 48 5.1 工作总结 . 48 5.2 后续工作展望 . 49 参考文献 50 附录 51 致谢 54 第一章 引言 1.1 课题背景 随着当今世界进入信息时代, Internet 的飞速发展和在全球的普及给人类生活带来革命性的改变。 Internet 将传统意义上的物理空间
14、转变成电子空间,把人们带入了一个网络社会中。网络时代的到来,带给人们的不只是快捷、方便,它带来的是划时代的进步。在网络大家族中,电子商务则是一个热点,它的发展速度之快远远超过我们的想象,普及速度之快令人难以置信。我们完全有理由相信,全球性的电子商务热潮必将一浪高于一浪 1。 5 电子商务一个最基本体现就是电子购物网站,从一定程度上讲它就是网上超市,也就是一种网上交易。“网”字意味着它具有信息时代的快捷方便等特征。事实上电子商务的出现,给消费者的地位,消费观念带来了重要的变化。网上交易系统 正是应这种变化而悄然崛起,并以惊人的速度发展着。通过网上交易系统,人们可以足不出户的寻找自己所需的物品,通
15、过对不同虚拟商城的访问,“顾客”可以找出性价比最高的商品,自己有极大地选择空间,通过下订单,你可以很快得到自己想要的物品,这给顾客节省很多时间和精力,对于厂家来说,可以极大的降低库存风险,根据客户需要,按需生产和采购,大大的提高了效益。 1.2 课题目的和意义 自从电子商务出现在人们的视野中,电子商务就在全世界范围内受到了格外的关注,并得到了迅速的发展。从实用角度看,目前电子商务网站的普遍 存在是购买者难以找到所希望购买的商品甚至用户在耗费很大的经历与时间后即使找到了自己想要的产品,最后却由于各种原因而放弃购买。很多报道指出,推销商们普遍对目前的网络行销感到失望,尽管如此,电子商务无疑是目前最
16、好的在线商品展示的媒体和工具。然而,网上产品展示的目的不仅仅是展示产品,而更重要的是通过让客户更多地了解产品而提高产品的购买率。因此,电子商务目前所面临的挑战之一就是网站的设计,如何使得网页能够有效地展示自己的产品,同时方便用户的使用,使用户以愉悦的心情选购称心如意的商品。 本系统的目的和意义就是应上述挑 战而尝试为用户提供一个操作简单方便的网上交易系统。利用本系统,用户可以自由地浏览商品,注册成为网站会员,选择商品加入自己的购物车,而后生成订单,实现网上购物。 1.3 本文结构 本文共分五个章节,系统地阐述了系统开发的全过程。 第一章,主要介绍了开发的背景、目的和意义。 第二章,主要介绍了本
17、系统所用到的关键技术和工具,为下一步的设计的设计奠定基础。 第三章,主要对系统进行需求分析并进行总体设计。需求分析阶段通过分析系统的功能模块的划分以及角色的划分,为系统的总体设计提供依据。总体设计阶段通过对数据库 、过滤器、监听器、和实体类的设计,以及各个模块用例图的描述,形成了开发的整体思路。 第四章,主要介绍了主要模块的设计与实现,并给出关键源代码和最终的效果图。 第五章,主要是对这次毕业设计的总结和对后续工作的展望。 6 7 第二章 系统应用的关键技术 2.1 JSP 技术介绍 2.1.1 JSP 的概述 JSP(Java Server Pages)是由 Sun Microsystems
18、 公司倡导、许多公司参与一起建立的一种动态网页技术标准,类似于其他技术标准,如 ASP, PHP 等,主要用于开发动态网页内容。 JSP 是新一代的动态内容编程技术,它继承了 Java 技术的“一次编写,随处运行”的特性,允许 Web 开发人员开发和维护与平台无关,信息丰富动态的 Web 页面,包括 HTML, DHTML,XHTML 和 XML,它能使 Web 开发人员轻易搭建网络平台,建立起功能强大的 Web 网站。 JSP可以把用户界面从内容层次中分离出来,使得 Web 开发人员不必修改在底层的动态内容,就可以修 改整体的页面布局。 2.1.2 JSP 的运行机制 JSP 文档被复制到
19、Web 服务器的文档目录中。当有人请求这个文档时,服务器识别出这个带有 .jsp 扩展名的文档,并意识到需要做特殊处理。第一次请求这个文档时,它被编译成一个servlet 对象,并存储在内存中,然后输出内容回送给发出请求的客户机。第一请求之后,只要有请求到来,服务器将进行检查,看看这个文件是否做过改动,如果没有变化,服务器调用先前编译过的 servlet 对象。 JSP 请求的步骤 2如图 2-1 所示。 ( 1)客户机请求一个 JSP 页面。 ( 2) JSP 引擎编译该 JSP 成一个 servlet。 Web 浏览器 JSP 页面 生成的 servlet 编译的 servlet Web
20、服务器 2第一次编译 3第二次编译 1请求 8 4响应 图 2-1 一个 JSP 的请求步骤 ( 3)生成的 servlet 被编译并装载。 ( 4)编译的 servlet 服务请求并把一响应发送回客户机。 JSP 主要是针对 Java 程序处理不熟悉的人设计的。与 Servlet 相比, JSP 有如下两个优势:方便与 HTML 混合;在开发、测试方面比 Servlet 方便。 2.1.3 JSP 的强势与劣势 JSP 的强势: ( 1)可移植性。 JSP 是用 Java 开发的,因此它是可移植的,可以一处编写,随处运行,支持多平台。 ( 2)有效性。 JSP 的初始化代码仅在 Web 服务
21、器第一次加载时执行一次。一旦加载,在处理一个新的请求时,只须调用一个新的服务方法。与处理每个请求都要全部加载一个完整的可执行程序相比,这是一个相当有效的技术。 ( 3)强大的可伸缩性和可扩充性。它能够在面向对象的语言 (Java)中进行开发,并可以在现有对象基础上进行扩展,形成新的对象,从而更好地满足 用户的需求。 ( 4)多样化和功能强大的开发工具支持。 Java 已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。 ( 5) Java Servlet 是一种开发 Web 应用的理想框架。 JSP 以 Servlet 技术为基础,又在许多方面作
22、了改进。利用跨平台的 JavaBeans 组件, JSP 为分离处理逻辑与显示样式提供了卓越的解决方案。 JSP 的劣势: ( 1)为了跨平台的功能,为了极度的伸缩能力,极大的增加了产品的复杂性, Java 系统中包括 JRE, JDK, J2EE, EJB 等多种 产品,这就需要大量的学习和培训才能掌握它们,将它们有效地搭配在一起,灵活地加以运用。 ( 2) Java 的运行速度快是由于用户将 class 常驻内存,这样使用的内存空间就比较大。另一方面,它还需要硬盘空间来存储一系列 .Java 文件和 .class 文件以及对应的版本文件。 ( 3) JSP 只有对 Java 相当熟悉的人才
23、能用得很好。 ( 4) JSP 程序调试困难。 2.1.4 JSP 与 ASP 的比较 JSP 与 ASP(Active Server Page)两者都是常用的动态网页技术,也都是可以嵌入 HTML 中的程序,但两者是有着本质的 不同,主要从以下几个方面对其进行比较: ( 1) Web 服务器的支持:大多数通用的 Web 服务器如: Apache、 Netscape 和 Microsoft IIS都支持 JSP 页面,只有微软本身的 Microsoft IIS 和 Personal Web Server 可以支持 ASP。 ( 2)平台的支持: JSP 具有平台独立性,只要是一般的 Java
24、程序可以运行的平台,都支持JSP 程序。 Windows 平台可以很好的支持 ASP,但 ASP 对于基于 Win32 逐渐模型的依赖,使得它难于一直到其它平台上。 ( 3)组件模型: JSP 是建立在可重用的、跨平台的组件(如: JavaBeans、 Enterprises JavaBeans 和用户定制的标签库等组件)之上的,而 ASP 使用的是基于 Win32 的 COM 组件模型。 9 ( 4)脚本语言: JSP 可以使用 Java 编程语言或 JavaScript 作为脚本语言,而 ASP 使用 VBScript或 Jscript 作为脚本语言。 ( 5)安全性: JSP 使用 Ja
25、va 安全模型,而 ASP 使用 Windows NT 的安全结构。 ( 6)与 Access 数据库的连接: JSP 使用 JDBC 建立与 Access 数据库的连接,而 ASP 对 Access数据库使用 Data Active Objects。 ( 7)用户定制的标签: JSP 可以使用用户定制标签库进行扩充,而 ASP 中没有用户定制标签库, ASP 是不能扩充的 3。 2.2 Java 组件 JavaBeans 2.2.1 什么是 JavaBeans JavaBeans 事实上有三层含义。首先, JavaBeans 是一种规范,一种在 Java(包括 JSP)中使用可重复使用的 J
26、ava 组件的技术规范。其次, JavaBeans 是一个 Java 的类,一般来说,这样的 Java 类将对应于一个 独立的 .java 文件,在绝大多数情况下,这应该是一个 public 类型的类。最后,当 JavaBeans 这样的一个 Java 类在我们的具体的 Java 程序中被示例之后,我们有时也会将这样的一个 JavaBeans 的实例称之为 JavaBeans4。 2.2.2 JSP 与 JavaBeans 的关系 使用 JSP 技术, Web 页面开发人员可以使用 HTML 和 XML 标识来设计和格式化最终页面。使用 JSP 标识或者小脚本生成页面上的动态内容。生成内容的逻
27、辑被封装在 JSP 标识和JavaBeans 组件中,并且捆绑在小脚本中,所有的脚本在 服务器端运行。核心逻辑封装在标识和 Beans 中,可以方便页面设计者编辑和使用 JSP 页面。 在服务器端, JSP 引擎解释 JSP 标识和小脚本生成所请求的内容 (例如,通过访问 JavaBeans组件,使用 JDBC 技术访问数据库 ),并且将结果以 HTML(或 XML)页面的形式发送回浏览器。 绝大多数 JSP 页面依赖于可重用的跨平台的足见 (JavaBeans 或者 Enterprise JavaBeans 组件 )来执行应用程序所要求的复杂的处理。这样的好处是开发人员能够共享和交换执行普通
28、操作的组件,加速了总体开发过程。因此,基于 Web 的较为复杂的应用程序 (如电子商务网站或网上 MIS), JSP 的复杂架构必须由 JavaBeans 达成。 2.3 J2EE 概述 J2EE(Java 2 Platform Enterprise Edition)是使用 Java技术开发企业级应用的一种事实上的工业标准 (Sun 公司出于其自身利益的考虑,至今没有将 Java 及其相关技术纳入标准化组织的体系 ),它是 Java 技术不断适应和促进企业级应用过程中的产物。目前, Java 平台有三个版本:适用于小型设备和智能卡的 J2ME(Java 2 Platform Micro Edi
29、tion)、适用于桌面系统的 J2SE( Java 2 Platform Standard Edition)和适用于企业级应用的 J2EE(Java 2 Platform Enterprise Edition)。Sun 推出 J2EE 的目的是为了克服传统 Client/Server 模式的弊病,迎合 Browser/Server 架构的潮流,为应用 Java 技术开发服务器端应用提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署。 J2EE 是一个标准,而不是一个现成的产品 。各个平台开发商按照 J2EE 规范分别开发了不同的 J2EE
30、应用服务器,J2EE 应用服务器是 J2EE 企业级应用的部署平台。由于它们都遵循了 J2EE 规范,因此,使用J2EE技术开发的企业级应用可以部署在各种 J2EE应用服务器上。为了推广并规范化使用 J2EE架构企业级应用的体系架构, Sun 同时给出了一个建议性的 J2EE 应用设计模型: J2EE Blueprints。 J2EE Blueprints提供了实施 J2EE企业级应用的体系架构、设计模式和相关的代码,通过应用 J2EE Blueprints 所描述的体系模型,能够部 分简化架构企业级应用这项复杂的工作。J2EE Blueprints 是开发人员设计和优化 J2EE 组件的基本
31、原则,同时为围绕开发工作进行职能10 分工给出了指导性策略,以帮助应用开发设计人员合理地分配技术资源。 J2EE 的优势主要有以下几点: ( 1)高效的开发: J2EE 允许公司把一些通用的、很繁琐的服务端任务交给中间件供应商去完成这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。高级中间件供应商提供以下这些复杂的中间件服务 :状态管理服务 - 让开发人员写更少的代码,不用关心如何 管理状态,这样能够更快地完成程序开发。 ( 2)持续性服务 : 让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。分布式共享
32、数据对象CACHE 服务,让开发人员编制高性能的系统,极大提高整体部署的伸缩性。 ( 3)支持异构环境: J2EE 能够开发部署在异构环境中的可移植程序。基于 J2EE 的应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于 J2EE 的程序只需开发一次就可部署到各种平台。这在典型的异构企业计算环境中是十分关键的。 J2EE 标准也允许客户订购与 J2EE 兼容的第三方的现成的组件,把他们部署到异构环境中,节省了由自己制订整个方案所需的费用。 ( 4)可伸缩性:企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。基于 J2E
33、E 平台的应用程序可被部署到各种操作系统上。例如可被部署到高端 UNIX 与大型机系统,这种系统单机可支持 64 至 256个处理器。(这是 NT 服务器所望尘莫及的) J2EE 领域的供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。 ( 5)稳定的可用性: 一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。这是实时性很强商业系统理想的选择 5。 2.4 关于 Struts 2.4.1 Struts 简介 Struts 已逐步越来越多运用于商业软件,是一种非常优秀的 J2EE
34、MVC 实现方式。 Struts 用 Java Servlet/JavaServer Pages 技术,开发 Web 应用程序的开放源码的 framework。 2.4.2 Struts 的主要功能 ( 1) 包含一个 controller servlet,能将用户的请求发送到相应的 Action 对象。 ( 2) JSP 自由 tag 库,并且在 controller servlet 中提供关联支持,帮助开发员创建交互式表单应用。 ( 3)提供了一系列实用对象: XML 处理、通过 Java reflection APIs 自动处理 JavaBeans属性、国际化的提示和消息。 Struts
35、 项目的目标是为创建 Java web 应用提供一个开放源代framework。 Struts framework 的内核是基于例如 Java Servlets, JavaBeans, ResourceBundles, 和 XML,以及各种 Jakarta Commons 包的标准技术的灵活的控制层。 Struts 提供了它自身的控制器组件,并整合了其他技术,以提供模型和视图。 Struts已逐步越来越多运用于商业软件,是一种非常优秀的 J2EE MVC 实现方式 6。 2.4.3 Struts 工作原理 MVC( Model-View-Controller),是一种常用的设计模式。 MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化, MVC 可以让整个逻辑很清晰,这种思想和思维和人的思维很接近,很容易被理解。 MVC 的工作原理如图 2-2 所示: