【Java开源代码栏目提醒】:网学会员--在 Java开源代码编辑为广大网友搜集整理了:基于JAVA EE的电子商务系统 - 综合课件绩等信息,祝愿广大网友取得需要的信息,参考学习。
毕 业 论 文设计 题 目 基于
JAVA EE的电子商务系统的设计与 实现 姓 名 学 院
理学与信息科学学院 专 业
计算机科学与技术 班 级 学 号 指导教师 2009 年 6 月 15 日 基于
JAVA EE的电子商务系统 摘要通过网上购物系统的建设以实现对商业零售企业提供信息化管理。
建立的B2C的网上购物系统着重论述了系统功能与实现、数据流程及存储包括用户
注册与登录程序的设计、网上订货与购物、后台管理等任务。
本系统具有一定的实用价值。
运用SSH框架、EJB、Web Service、JSP等关键技术建设网上购物系统。
实现网上购物系统以下功能 1为客户提供24小时方便快捷的在线订购服务 2商品信息的维护与管理 3强大、方便、快捷的查询 4将客户商业逻辑规则融入系统即根据不同客户属性提供不同付款方式 5订单管理 关键词B2C EJBMVCWeb服务 Based on
JAVA EE E-Business System Design and Implementation AbstractConstructing the shopping system is in order to provide the information management of the commercial retail sales enterprise .Has being established the B2C network sale system which mainly elaborate the system function and the realization the data flow and the memory including the user registration net ordering and shopping backstage management and so on. Constructing network shopping system uses some key technologies such as
JAVA language Web Service technology SSH and so on. Realizes on the net shopping system the following function: 1 Provide 24 hour convenient quick online order service for the customer. 2 The commodity information maintenance and management. 3 Formidable convenient quick inquiry. 4 Integrate the customer commercial logic rule into the system namely provide the different payment method bases on the different customer attributes. 5 order form management. Key
wordsB2C EJBMVCWeb Service 目 录 第一章 绪论 ..................................................... 4 第二章 StrutsSpringHibernate .................................. 6 2.1 设计模型及其比较 ......................................... 6 2.2 为什么要使用框架 ......................................... 7 2.3 SSH开发架构的重新分层 ................................... 11 第三章 基于
JAVA EE的Web Service .............................. 14 3.1 Web Service简述 ......................................... 15 3.1.1 Web Service概念 ................................... 15 3.1.2 Web Service优点 ................................... 15 3.2 Ejb ..................................................... 18 3.2.1 EJB的分类 ........................................ 18 3.2.2 EJB应用 .......................................... 19 第四章 海码商城系统 ............................................ 20 4.1 综合介绍 ................................................ 21 4.1.1 系统环境配置 ....................................... 21 4.1.2 系统需求分析 ....................................... 21 4.2 系统分析设计 ............................................ 22 4.2.1 系统前台用例 ....................................... 22 4.2.2 系统前台事件流描述 ................................. 23 4.2.3 系统后台用例 ....................................... 24 4.2.4 系统后台事件流描述 ................................. 25 4.2.5 实体数据关系和ER图 ................................ 25 4.2.6 数据库表设计 ....................................... 28 第五章 结论 ..................................................... 33 致 谢 .......................................................... 35 参考文献 ........................................................ 36 基于
JAVA EE的电子商务
系统 第一章 绪论 电子商务顾名思义是指在Internet网上进行商务活动。
其主要功能包括网上的广告、订货、付款、客户服务和货物递交等销售、售前和售后服务以及市场调查分析、财务核计及生产安排等多项利用Internet开发的商业活动。
电子商务的一个重要技术特征是利用Web的技术来传输和处理商业信息。
电子商务有广义和狭义之分。
狭义的电子商务也称作电子交易e-commerce主要是指利用Web提供的通信手段在网上进行的交易。
而广义的电子商务包括电子交易在内的利用Web进行的全部商业活动如市场分析、客户联系、物资调配等等亦称作电子商业e-business。
这些商务活动可以发生于公司内部、公司之间及公司与客户之间。
电子商务不仅仅是买卖也不仅仅是软硬件的信息而是在Internet、企业内部网Intranet和企业外部网Extranet将买家与卖家、厂商和合作伙伴紧密结合在了一起因而消除了时间与空间带来的障碍。
20世纪90年代以来电子商务在全球范围内的兴起和迅猛发展快速地改变着原有经济格局以及传统的经济运行方式和增长模式。
电子商务在催生新
经济和推动经济全球化中所表现出来的巨大能量已经使其成为评价一国经济发展水平和可持续发展能力的重要指标。
因此了解我国电子商务发展现状客观认识我国电子商务发展中的问题研究对策实现加速、健康、稳定发展应该成为我们全面建设小康社会的一项紧迫而重要的任务。
基于
JAVA EE的电子商务系统 第二章 StrutsSpringHibernate 2.1 设计模型及其比较 随着JSP的到来有许多人认为Servlet已行将就木可实际情况并非如此。
JSP没能完全取代Servlet。
事实上许多新近推出的应用程序都同时使用了Servlet和JSP。
要想了解其中的奥妙必须先把用
Java语言开发Web应用程序时的两种设计模型弄清楚。
第一种设计模型简称为Model 1它紧随着JSP的出现而诞生。
Servlet通常不用在这种模型中从一个JSP页面浏览到另一个页面是通过点击该页面里的链接做到的。
第二种设计模型简称为Model 2。
下面马上就会介绍为什么Model 1不值得推荐以及为什么Model 2才是应该遵循的设计思路。
Model 1设计模型的弊病 Model 1设计模型是以页面为中心的。
按照这一模型实现的应用程序由一系列JSP页面构成用户就在这些页面间转来转去。
这种模型既易于理解又易于实现所以很多程序员在刚开始学JSP时都会采用它。
按Model 1模型开发的应用程序的主要弊病是它们既难以维护又很不灵活。
这种架构不利于网页设计师和Web开发人员之间的劳动分工开发人员既要参与页面的开发 又要参与业务逻辑的编码。
Model 1设计模型不值得推荐的原因主要有以下几点。
① 浏览问题。
如果你打算改变某个
JSP页面的名字就必须在所有引用了这个页面的其他页面里把这个页面的名字全都改过来。
② 在这种模型下因为JavaBeans的能力有限而自定义标签又比较难以编写所以在JSP页面里嵌入scriptlet的做法对程序员更有诱惑力。
但正如我们刚才解释的那样让
Java代码和HTML混杂在JSP页面里并不是件好事。
③ 如果不让
Java代码出现在JSP页面里那么你必须为大多数业务逻辑编写自定义标签因此你需要花费更多的时间开发应用程序。
相比之下把
Java代码编写在
Java类里更节约时间。
Model 2
设计模型 第二种设计模型简称为Model 2。
如果打算使用
Java语言开发Web项目这一模型应该是首选的架构。
Model 2是MVCModel-View-Controller模型基于
JAVA EE的电子商务系统 —视图—控制器设计模式的另一个名字。
按照Model 2模型开发的应用程序由三个主要部分组成模型、视图和控制器。
在Model 2模型里所有的页面都有一个共同的入口点通常是由一个servlet来充当主控制器JSP页面负责实现页面表现。
与Model 1相比基于Model 2的应用程序主要有以下几个优点 ① 开发速度快 ② 易于测试 ③ 易于维护 ④ 易于扩展。
Struts的优点 理解MVC模式Model 2为什么是用
Java语言开发Web应用程序时的首选设计模型之后接下来的问题就是怎样才能加快Model 2应用程序的开发速度 这也正是Craig McClanahan在创建Struts之前想到的问题。
Struts是一种用来开发Model 2应用程序的框架。
这个框架之所以能加快开发速度是因为它提供的下面这些功能解决了Web应用程序开发过程中的一些常见问题 ① 页面
导航管理 ② 用户输入验证 ③ 一致的布局 ④ 可扩展性。
因为Struts是一个Model 2框架所以在使用Struts的时候必须严格遵守以下几条不成文的规定 ① 不要在JSP页面里嵌入
Java代码所有的业务逻辑都驻留在称为动作类action class的
Java类里。
② 在JSP页面里通过表达式语言Expression LanguageEL如果你使用的是JSP 2.0的话或JSTL访问有关的业务模型。
③ 尽量避免编写自定义标签因为自定义标签的
代码比较难以编写。
2.2 为什么要使用框架 在具体介绍软件框架framework之前我们首先要明确什么是框架和为基于
JAVA EE的电子商务系统 什么要使用框架。
这要从企业面临的挑战谈起。
随着项目的规模和复杂性的提高企业面临前所未有的各个方面的挑战。
根据优先级排序主要包括高可靠性High Availability、低成本Cost Effective、可扩展性Scalability、投放市场快递性Time Market、安全性Secure、性能Good Performance、可集成性Ability to intergrate以及多平台支持Multi-channel等。
那么我们如何面对并且解决这些挑战呢这需要采用通用的、灵活的、开放的、可扩展的软件框架有框架来帮我们解决这些挑战之后再在框架基础之上开发具体的应用系统。
那么到底什么是软件框架呢框架定义如下 ① 是应用系统的骨架将
软件开发中反复出现的任务标准化以可重复的形式提供使用 ② 大多可提供了可执行的具体程序
代码支持迅速地开发出可执行的应用但也可以是抽象的设计框架帮助开发出健壮的设计模式 ③ 好的抽象、设计成功的框架能够大大缩短应用系统开发的周期 ④ 在预制框架上加入定制的构件可以大量减少编码量并容易测试 ⑤ 分别用于垂直和水平应用。
框架具有以下特点 ① 框架具有很强大的可重用性远远超过了单个类它是一个功能连贯的类集合通过相互协作为应用系统提供服务和预制行为 ② 框架中的不变部分定义了接口、对象的交换和其他不变量 ③ 框架中的变化部分应用中的个性。
一个好的框架定义了开发和集成组件的标准。
为了利用、定制或扩展框架服务通常需要框架的使用者从已有框架类继承相应的子类以及通过执行子类的重要方法用户定义的类将会从预定义的框架类获得需要的消息。
这会给我们带来很多好处包括
代码重用性和一致性对变化的适应性特别是它能够让开发人员专注于业务逻辑从而大大减少了开发时间。
在软件架构设计中我们往往建立软件系统得到层结构常
常用到分层架构模式。
基于
JAVA EE的电子商务系统 ① 分层模式是一种将系统的行为或功能以层为首要的组织单位来进行分配划分的结构模式。
通常在逻辑上进行垂直的层次Layer划分 在屋里上进行水平的层级Tier划分。
② 分层要求层内的元素只信赖于当前层和之下的相邻层中的其他元素。
注意这并非绝对的要求。
大部分的web应用在职责上至少能被分成4层表示层presentation layer、持久层persistencen layer、业务层business layer和与模块层domain model layer。
每个层在功能上都应该是十分明确的而不应该与其他层混合。
每个层要相互独立通过一个通信接口而相互联系。
下面将分别详细的介绍这4层讨论一下这些层应该提供什么不应该提供什么。
这里讨论一个使用3种
开源框架的策略表示层用Struts业务层用Spring而持久层则用Hibernate ① 表示层 一般来讲一个典型的web应用的前端应该是表示层。
这里可以用Struts框架。
下面是Struts所负责的 管理用户的请求作出相应的相应 提供一个流程器委派调用业务逻辑和其他上层处理 处理异常 为显示提供一个数据模型 用户界面的验证 以下内容不该在Struts表示层中经常出现是与表示层无关的。
与数据库之间
通信 与应用程序相关联的业务逻辑及校验 事物处理 在表示层引入这些
代码则会带来高耦合和难以维护的后果。
② 持久层 典型的
web应用的后端是持久层。
开发者总是低估构建他们自己的持久层框架的挑战性。
系统内部的持久层不但需要大量调试时间而且还经常因为缺基于
JAVA EE的电子商务系统 少功能使之变得难以控制。
这是持久层的通病。
幸运的是有几个对象/关系映射Object/Relation MappingORM
开源框架很好地解决了这类
问题尤其是Hibernate。
Hibernate为
java提供了一个
学习桥梁使他们学习起来很方便。
Hibernate的持久对象是基于POJOPlain Old
Java Object和
Java集合collections的。
此外使用hibernate并不妨碍你正在使用的IDEIntegrated Development Eviroment。
下面是Hibernate所负责的 如何查询对象的相关信息: Hibernate是通过一个面向对象的
查询语言HQL或者正则表达式的API来完成查询的。
HQL非常类似于SQL只是把SQL里的table和columns用Object和它的fields代替。
HQL语言容易理解且
文档也做得很好。
HQL是一种面向对象查询的自然语言很容易就能学到它。
如何存储、更新、删除数据库记录: 如Hibernate这类的高级ORM框架支持大部分主流数据库并且支持父表/子表Parent/child关系、事务处理、继承和多态。
③ 业务层 一个经典Web应用的中间部分是业务层或者服务层。
从编码的视角看这层是最容易被忽视的一层。
我们往往在用户界面层或持久层周围看到这些业务处理的
代码这其实是不正确的。
因为它会造成
程序代码的高耦合这样一来随着时间推移这些
代码将很难维护。
幸好针对这一问题有好几种框架Framework存在。
最受欢迎的两个框架是Spring和PicoContainer。
这些也被称为轻量级容器Micro Container他们能让你很好地把对象搭配起来。
这两个框架都着手于“依赖注入”Dependency Injection还有我们知道的“控制反转”Inversion of ControlIoC这样的建档概念。
另外Spring把程序中所涉及的包含业务逻辑和数据存取对象Data Access Object的Objects——例如Transaction Management Handler事务管理控制、Object Factories对象工厂、Service Objects服务组件都通过XML来配置联系起来。
具体讲Spring负责 处理应用程序的业务逻辑和也无校验 基于
JAVA EE的电子商务系统 管理事务 提供与其它层相互作用的接口 管理业务层级别的对象的依赖 在表示层和持久层之间增加了一个灵活的机制使得他们不直接联系在一起 通过揭示从表示层到业务层之间的上下文Context来得到业务逻辑Business Services 管理程序的执行从业务层到持久层。
2.3 SSH开发架构的重新分层 现代的企业开发中越来越多地引入了多层架构设计StrutsSpring Hibernate一下简称为SSH就是其中之一SSH架构是当前非常火的架构很多金融、电信项目大型门户网站均选择该架构作为业务支撑架构开发流程也已经非常成熟。
但是该结构开发起来依旧存在一些问题。
分析这些问题得先从SSH架构的组成说起。
SSH为StrutsSpringHibernate的组合方式Struts实现MVCSpring基于
JAVA EE的电子商务系统 负责架构的结合Hibernate进行数据的持久化。
通常其分层结构如图 图 2-1 SSH三层架构图 这样的结构满足了一般的业务需要但是对于当前日益复杂化的WEB2.0的开发却存在不少问题归纳起来主要有以下几点的不足 ① DAO和服务层容易出现职责不明由于按照MVC逻辑业务
代码应该写在Struts Action里但是其事务的提供却是配置在Service层。
为了一组在逻辑上完整的数据操
作业务逻辑需要涉及两个层Serveice、 Action来进行编写遇到判断的情况下为了保证完整的事务操作则需要将业务
代码移到Service层完成而通常习惯了在Struts Action里调用多次Service而产生多个事务而在出现Exception时导致出错时操作之前调用的Service事务的业务数据没有回滚。
② 当需要返回的数据供AJAX使用操作JSON或XML的大量使用时。
开发起来会很费力一段同样的业务
代码为了使用AJAX和XML可能需要重新编写一次或者在同一个ACTION里通过标志来判断对分层结构造成了比较糟糕的破坏。
如果设计得不好为了使用JSON和XML还得额外增加大量的配置严重降低了开发效率。
基于
JAVA EE的电子商务系统 因此为了克服这些缺点本人对于SSH架构进行了实现了重新的分层共享了业务
代码。
简化了开发、增强了与AJAX技术、XML技术的结合。
提供了一种更高效的开发模式。
其开发的结构图如下 图2-2 SSHAJAX分层图 看到这个架构图有人可能会问Struts Action类的编写去哪了呢答案正是这个架构的优点由于业务
代码统一实现IbusinessService接口使得只需基于
JAVA EE的电子商务系统 要相对固定的几个 Struts Action类调用Service层的方法便可以完成
工作。
包括JSON格式输出XML输出及WebService输出均调用Service层方法来 完成功能。
这样便实现了业务
代码的分离以及与前端框架的极大解耦。
第三章 基于
JAVA EE的Web Service 基于
JAVA EE的电子商务系统 3.1 Web Service简述 3.1.1 Web Service概念 Web Service 是一种新的web应用程序分支他们是自包含、自描述、模块化的应用可以发布、定位、通过web调用。
Web Service可以执行从简单的请求到复杂商务处理的任何功能。
一旦部署以后其他Web Service应用程序可以发现并调用它部署的服务。
实际上WebService的主要目标是跨平台的可互操作性。
为了达到这一目标WebService完全基于XML可扩展标记语言、XSDXMLSchema等独立于平台、独立于软件供应商的标准是创建可互操作的、分布式应用程序的新平台。
3.1.2 Web Service优点 跨防火墙的通信 如果应用程序有成千上万的用户而且分布在世界各地那么客户端和服务器之间的通信将是一个棘 手的问题。
因为客户端和服务器之间通常会有防火墙或者代理服务器。
在这种情况下使用DCOM就不是那么简单通常也不便于把客户端程序发布到数量如此庞 大的每一个用户手中。
传统的做法是选择用浏览器作为客户端写下一大堆ASP页面把应用程序的中间层暴露给最终用户。
这样做的结果是开发难度大程序 很难维护。
举个例子在应用程序里加入一个新页面必须先建立好用户界面Web页面并在这个页面后 面包含相应商业逻辑的中间层组件还要再建立至少一个ASP页面用来接受用户输入的信息调用中间层组件把结果格式化为
HTML形式最后还要把“ 结果页”送回浏览器。
要是客户端
代码不再如此依赖于HTML表单客户端的编程就简单多了。
如果中间层组件换成WebService的话就可以从用户界面直接调用中间层组件从而省掉 建立ASP页面的那一步。
要调用WebService可以直接使用MicrosoftSOAPToolkit或.
NET这样的SOAP客户端也可以使 用自己开发的SOAP客户端然后把它和应用程序连接起来。
不仅缩短了开发周期还减少了
代码复杂度并能够增强应用程序的可维护性。
同时应用程序也不 再需要在每次调用中间层组件时都跳转到相应的“结果页”。
基于
JAVA EE的电子商务系统 从经验来看在一个用户界面和中间层有较多交互的应用程序中使用WebService这种结 构可以节省花在用户界面编程上20的开发时间。
另外这样一个由WebServi.