资源描述
精选优质文档-倾情为你奉上南京晓庄学院电子商务网站开发与设计课程设计报告题 目:B-C电子商城系统的设计与实现姓 名:施程耀学 号: 班 级: 10网络工程指导教师: 王杰完成时间2013/6/25 成 绩:数学与信息技术学院2013年6月专心-专注-专业摘要随着信息化网络的发展,网络对人们的生活影响越来越大,网上购物也逐渐成为一种趋势,这对电子商场的发展起到了很在的推进作用。本文主要通过对电子商城的应用环境和主要实现功能进行分析,叙述了本电子商城的设计与实现过程,并对其总结。项目主要应分层架构思想,通过J2EE的struts2框架和hibernate框架相结合来实现。在设计种过中全方位的应用软件工程的开发思想,因为系统是基于B-C结构,所以适应范围广阔。关键词:网上购物;框架;struts2;hibernateABSTRACTWith the development of information network, the network impact on peoples lives more and more, online shopping is becoming a trend, which is the development of electronic mall played a role in the promotion. This paper mainly through the electronic mall application environment and the main achievement of functional analysis describes the electronic mall design and implementation process, and its summary. Project ideas should mainly be layered architecture, through the J2EE framework and hibernate framework struts2 combined to achieve. Planted in the design of a full range of applications in software engineering development thinking, because the system is based on the BC structure, adapt to a broad range.Key words:online shopping; framework; struts2; hibernate目录诚欣电子商务网站的设计与实现1 引言 1.1 系统开发背景 现如今网络已经发展成为了人们生活中不可或缺的一部分,有各种各样的网站在不断的涌现出来,网上购物迅猛发展,导致电子商城大量的涌现,而电子商城的出现不仅改变了人们传统的购物方式,也逐渐的影响着人们的消费观,一个好的电子商城不仅能给客户带来方便,更能给企业带来巨大的财富。 1.2 系统开发的目的和意义随着信息化技术在生活中的应用越来越广泛,网上购物也逐渐成为人们的一种生活方式。本系统正是基于这样一种环境下应运而生。本电子商城为前台部分,前台主要实现会员的网上购物业务流程、用户注册、用户资料修改。本商城主要利用J2EE的框架技术进行开发,有很强的安全性、可靠性、可扩展性。基于时间原因,只实现了前台功能,就整体功能而言,基本能满足基本的网上购物需求,相信一定能让用户感到便捷、快速,让企业管理、维护更简单。1.3 完成的主要工作实现了特价和畅销模块、查看用户订单模块。2 需求分析和总体设计2.1需求分析与设计思路 2.1.1 需求分析和设计思路分析网站的特点,对所完成模块的功能需求和设计思路进行总体介绍,并对模块的包结构和文件结构进行说明。网上购物从英文字面的意思上看就是利用现在先进的电子技术从事各种商业活动的方式。其实质是一套完整的网络商务经营及管理信息系统。在具体一点,它是利用现有的计算机硬件设备、软件和网络基础设施,通过一定的协议连接起来的电子网络环境进行各种各样的商务活动方式。根据需求分析本系统主要包括以下功能模块:登录模块、商品显示模块、购物车模块、订单管理模块、账户注册和修改模块。商品显示模块:特价、畅销模块:在主页面显示特价商品和畅销商品。订单管理模块:订单详细信息模块:显示已保存的订单的详细信息。账户注册:创建新登录用户。系统包结构包名作用org.vo定义系统的POJO类及其映射文件,这些类与数据表一一对应,可使用Hibernate反向工程自动生成。org.dao定义各个类对于数据库增、删、改、查操作的接口。org.daoimpl定义各接口的实现类org.action定义各类业务的tuts2 Action类,可以通过调用该包下各类的不同方法来完成对不同对象的业务操作。在电子商城中主要包括会员、商品、订单等业务对象。org.util定义工具类,包括获取Hibernate框架session对象的HibernateSessionFactory类。2.1.2 设计方案与技术选择介绍系统中采用的主要方案和技术,重点介绍JSP技术、JDBC技术、JavaBean技术、struts框架、Hibernate框架、MVC模式等。系统开发时主要使用的是MyEclipse软件,并且使用Java语言进行编程。运用了Struts2框架以及hibernate框架进行分层。用MySQL进行数据库的连接。还有采用了Tomcat和JDK作为辅助的工具。1、jsp技术JSP即Java Server Pages,是由Sun Microsystem公司于1996年6月推出的新技术,是基于Java Servlet以及整个Java体系的Web开发技术4。JSP已经成为开发Web动态网页重要、快速和有效的工具,是全新的网络服务器编程环境。JSP充分利用了Java的强大功能,是一种优秀的服务器端技术。随着Java技术的日益成熟和流行,JSP在网络编程中也变得越来越重要。JSP基于强大的Java语言,具有极强的扩展能力,良好的缩收性,以及与平台无关的开发特性,成为构建动态网站的主流技术之一,JSP有着其他技术所不具备的优势3。其优势在于:可以将内容的生成和显示进行分离、生成可重用的组件、采用标识简化页面开发。JSP能提供所有Servlet的功能52、jdbc技术JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,同时,JDBC也是个商标名。3、JavaBean技术JavaBean是Sun公司为了进入因特网、企业网以及万维网上进行分布式计算的组件结构入口。按照Sun公司的定义,JavaBean是一个可重复使用的软件部件。JavaBean体系结构是第一个全面地基于组件的标准模型之一,该组件是Java类,这些类遵循一个接口格式,以便于使方法命名、底层行为以及继承或实现的行为能够把类看做标准的JavaBean组件的方式进行构造7。在Java模型中,通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速生成新的应用程序。JavaBean具有以下特点:a)可以实现代码的重复利用。b)易维护性、易使用性、易编写性。c)可以在Java的任何平台上工作,不需要重新编译。d)可以在内部网或者网络之间进行传输。e)可以以其它部件的模式进行工作。JavaBean在JSP程序中常用来封装事务逻辑、数据库操作等,可以很好的实现业务逻辑和前台程序的分离,使得系统具有更好的健壮性和灵活性。4、struts框架Struts是Apache软件组织提供的一项开放源码项目,它为Java Web应用提供了模型-视图-控制器(Model-View- Controller,简称MVC)框架,尤其适用于开发大型可扩展的Web应用。Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。 Struts为Web 应用提供了一个通用的框架,使得开发人员可以把精力集中在如何解决实际业务问题上。此外, Struts 框架提供了许多供扩展和定制的地方,应用程序可以方便的扩展框架,来更好的适应用户的实际需求。5、Hibernate框架Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。6、MVC模式MVC是 模型(Model),视图(View)和控制(Controller)的缩写,其目的实现Web系统的职能分工。其中Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现; View层用于与用户的交互,通常用JSP来实现; Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。2.2 系统结构图电子商城前台新品上市模块特价商品模块畅销商品模块购物车模块查看订单模块用户注册模块资料修改模块查看详单模块用户登录模块收银台结账模块图2.1 前台模块框图2.3 系统功能分析阐述各模块具体功能。用户登录模块:在首页框架中用户登录新品上市模块:在首页框架中显示新品列表特价商品模块:在首页框架中显示特价商品列表畅销商品模块:在首页框架中显示畅销商品列表购物车模块:在首页框架中显示用户准备购买但还没付款的商品到收银台结账模块:显示订单保存成功查看订单模块:在首页框架中显示当前用户的订单列表查看详单模块:查看某条订单的详细情况用户注册模块:创建新用户3 详细设计3.1 数据库设计数据表的名称、结构、功能的描述。member表(会员表)supertype表(商品大分类表)subtype表(商品小分类表)goods表(商品信息表)bbs表(公告信息表) rebate表(折扣表) order表(订单信息表) order_detail表(订单详情表) manager表(管理员信息表)3.2 特价商品模块实现3.2.1 模块功能实现和关键代码说明开始结束图3.1 特价模块流程图(流程图例)调用GoodsAction里getSaleGoods方法 调用GoodsDaoImpl里的findSaleGoods方法查询数据库代码如下:public String getSaleGoods() throws ExceptionGoodsDaoImpl gdao=new GoodsDaoImpl();ArrayList saleGoods=(ArrayList)gdao.findSaleGoods();/将newGoods放入request对象Map request=(Map)ActionContext.getContext().get(request);request.put(saleGoods, saleGoods);return success;public List findSaleGoods() Session session=null;ArrayList al=new ArrayList();try session=HibernateSessionFactory.getSession();Query query=session.createQuery(from Goods where sale=1);al=(ArrayList)query.list(); catch (HibernateException e) / TODO Auto-generated catch blocke.printStackTrace();finallysession.close();return al; saleGoods.jsp 3.2.2 分层结构和文件调用关系首先,由JSP页面发出请求查找saleGoods,调用Action包里的getSaleGoods方法,该包会调用DaoImpl包里的findSaleGoods方法,查询数据库,找到特价商品的列表,保存进requese对象的saleGoods变量里,然后返回到saleGoods,显示到主页面。3.3 畅销商品模块实现3.3.1 模块功能实现和关键代码说明开始结束图3.1 畅销模块流程图(流程图例)调用GoodsAction里的getHitGoods方法调用GoodsDaoImpl里的findHitGoods方法查询数据库代码如下:public String getHitGoods() throws ExceptionGoodsDaoImpl gdao=new GoodsDaoImpl();ArrayList hitGoods=(ArrayList)gdao.findHitGoods();/将newGoods放入request对象Map request=(Map)ActionContext.getContext().get(request);request.put(hitGoods, hitGoods);return success;public List findHitGoods() Session session=null;ArrayList al=new ArrayList();try session=HibernateSessionFactory.getSession();Query query=session.createQuery(from Goods order by id desc);al=(ArrayList)query.list(); catch (HibernateException e) / TODO Auto-generated catch blocke.printStackTrace();finallysession.close();return al; hitGoods.jsp 3.3.2 分层结构和文件调用关系首先,由JSP页面发出请求查找HitGoods,调用Action包里的getHitGoods方法,该包会调用DaoImpl包里的findHItGoods方法,查询数据库,找到畅销商品的列表,保存进requese对象的hitGoods变量里,然后返回到hitGoods,显示到主页面。3.4 查看订单模块实现3.4.1 模块功能实现和关键代码说明开始调用OrderAction里的findId方法结束调用OrderDaoImpl里的findOrderById方法图3.1 查看订单模块流程图(流程图例)代码如下:public String findId() throws ExceptionOrderDaoImpl odao=new OrderDaoImpl();List list2=odao.findOrderById(onumber);Ordertable order1=odao.findOrder(onumber);Map request=(Map)ActionContext.getContext().get(request);request.put(orderlist2, list2);request.put(order1, order1);return success;public List findOrderById(long id) Session session=null;List g=null;try session=HibernateSessionFactory.getSession();Query query=session.createQuery(from Orderdetail where orderid=?);query.setLong(0,id);/设置第一个问号g=(List)query.list(); catch (HibernateException e) / TODO Auto-generated catch blocke.printStackTrace();finallysession.close();return g; order_detail.jsp3.4.2 分层结构和文件调用关系通过order-detail调用Action包里的findId方法,findId调用DaoImpl包里的findOrderById方法,把得到的结果,保存到session里,取名list2,通过orderdetail里取变量,得到这个值。4 系统运行结果主页面:在主框架里显示新品上市特价商品页面:在主框架中显示特价商品畅销商品页面:在主框架中显示畅销商品查看订单页面:显示用户的订单5 课程设计总结通过本次设计的制作,我学到了很多东西,要做出一个好的商务网站,是需要投入大量精力才能完成的。当然,通过这些我也发现了自身的很多不足之处,比如对如何把理论知识运用到实际中的能力还是很欠缺,在今后的学习中我会不断的努力。在数据库设计时没有考虑完全,使得在网站运行和信息传递时有错误,这也是这次学到的一点东西,设计一个好的数据库对于一个好的网站来说,作用是多么的重要。总的来说本次网站设计使我们了解和掌握了建设一个简单的动态网站所需要的知识和技能,既培养了我们的创新能力,也使我们对网站建设所需要的方面有了更加严谨的认识。参考文献1. 1缪勇,陈亚辉,李新峰高立辉.JSP网络开发逐步深入M.北京:清华大学出版社,2007.
展开阅读全文