《电子商务网站》javaweb课程设计报告.docx
《《电子商务网站》javaweb课程设计报告.docx》由会员分享,可在线阅读,更多相关《《电子商务网站》javaweb课程设计报告.docx(19页珍藏版)》请在冰豆网上搜索。
《电子商务网站》javaweb课程设计报告
南京晓庄学院
《电子商务网站开发与设计》
课程设计报告
题 目:
B—C电子商城系统的设计与实现
姓名:
沈国涛
学号:
10130211
班级:
10网络工程
指导教师:
王洁
完成时间
2013/6/25
成绩:
数学与信息技术学院
2013年6月
摘要
随着网络的普及和其技术的日趋成熟,在世界范围内,作为一种新的经济形态,电子商务将在日常生活中扮演越来越重要的角色,在采购—-供应链条所构成的经济活动中,电子商务将不仅仅承担辅助渠道的角色,更将成为一种独立的产业,在整个经济结构中,占据越来越重要的地位。
网上购物也逐渐成为一种趋势,这对电子商场的发展起到了很在的推进作用。
本文主要通过对电子商城的应用环境和主要实现功能进行分析,叙述了本电子商城的设计与实现过程,并对其总结.项目主要应分层架构思想,通过J2EE的struts2框架和hibernate框架相结合来实现。
在设计种过中全方位的应用软件工程的开发思想,因为系统是基于B-C结构,所以适应范围广阔。
关键词:
网上购物,框架,struts2,hibernate
ABSTRACT
Withthepopularityofthenetworkanditstechnologymatures,intheworld,asaneweconomicform,e—commerceindailylifewillplayanincreasinglyimportantroleinprocurement-supplychaincomposedofeconomicactivity,e-commercewillnotonlyassumetheroleofauxiliarychannels,butwillbecomeanindependentindustryinthewholeeconomicstructure,occupyanincreasinglyimportantposition.Onlineshoppingisbecomingatrend,whichisthedevelopmentofelectronicmallplayedaroleinthepromotion。
Thispapermainlythroughtheelectronicmallapplicationenvironmentandthemainachievementoffunctionalanalysisdescribestheelectronicmalldesignandimplementationprocess,anditssummary.Projectideasshouldmainlybelayeredarchitecture,throughtheJ2EEframeworkandhibernateframeworkstruts2combinedtoachieve。
Plantedinthedesignofafullrangeofapplicationsinsoftwareengineeringdevelopmentthinking,becausethesystemisbasedontheBCstructure,adapttoabroadrange。
Keywords:
Onlineshopping,frames,struts2,hibernate
诚欣网上商城网站的设计与实现
1引言
1。
1系统开发背景
随着计算机的高度普及和网络技术的飞速发展,网上购物已成为新兴的购物方式,网购已经正在改变着我们传统的消费行为,网上购物迅猛发展,导致电子商城大量的涌现,而电子商城的出现不仅改变了人们传统的购物方式,也逐渐的影响着人们的消费观,一个好的电子商城不仅能给客户带来方便,更能给企业带来巨大的财富.
1.2系统开发的目的和意义
随着信息化技术在生活中的应用越来越广泛,网上购物也逐渐成为人们的一种生活方式。
本系统正是基于这样一种环境下应运而生.本电子商城为前台部分,前台主要实现会员的网上购物业务流程、用户注册、用户资料修改。
本商城主要利用J2EE的框架技术进行开发,有很强的安全性、可靠性、可扩展性。
基于时间原因,只实现了前台功能,就整体功能而言,基本能满足基本的网上购物需求,相信一定能让用户感到便捷、快速,让企业管理、维护更简单.
1.3完成的主要工作
实现了特价和畅销模块、查看订单模块、会员资料修改模块。
2需求分析和总体设计
2.1需求分析与设计思路
2。
1。
1需求分析和设计思路
分析网站的特点,对所完成模块的功能需求和设计思路进行总体介绍,并对模块的包结构和文件结构进行说明.
在互联网日益流行的今天,网络已经变得越来越重要,而在网络这个大家庭里,网上购物则是一个热点,网上购物商城的出现,给消费者的消费观念带来了重要的变化。
功能强大的购物网站就成了大家一致的选择.
根据需求分析本系统主要包括以下功能模块:
登录模块、商品显示模块、购物车模块、订单管理模块、账户注册和修改模块。
商品显示模块:
特价、畅销模块:
在主页面显示特价商品和畅销商品。
订单管理模块:
订单详细信息模块:
显示已保存的订单的详细信息.
账户注册和修改模块:
创建新登录用户,修改已创建的用户的详细信息.
系统包结构
包名
作用
org。
vo
定义系统的POJO类及其映射文件,这些类与数据表一一对应,可使用Hibernate反向工程自动生成。
org。
dao
定义各个类对于数据库增、删、改、查操作的接口.
org。
daoimpl
定义各接口的实现类
2。
1。
2设计方案与技术选择
介绍系统中采用的主要方案和技术,重点介绍JSP技术、JDBC技术、JavaBean技术、struts框架、Hibernate框架、MVC模式等.
系统开发时主要使用的是MyEclipse软件,并且使用Java语言进行编程。
运用了Struts2框架以及hibernate框架进行分层。
用MySQL进行数据库的连接。
还有采用了Tomcat和JDK作为辅助的工具.
1、jsp技术
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准.JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*。
html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*。
jsp)。
用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易.JSP(JavaServerPages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。
]
2、jdbc技术
JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,同时,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软件组织提供的一项开放源码项目,它为JavaWeb应用提供了模型—视图—控制器(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表(商品信息表)
order表(订单信息表)
manager表(管理员信息表)
3。
2特价商品模块实现
3。
2。
1模块功能实现和关键代码说明
图3。
1特价商品模块流程图
代码如下:
publicStringgetSaleGoods()throwsException{
GoodsDaoImplgdao=newGoodsDaoImpl();
ArrayListsaleGoods=(ArrayList)gdao。
findSaleGoods();
Maprequest=(Map)ActionContext。
getContext()。
get("request");
request。
put(”saleGoods”,saleGoods);
return”success”;
}
publicListfindSaleGoods(){
Sessionsession=null;
ArrayListal=newArrayList();
try{
session=HibernateSessionFactory。
getSession();
Queryquery=session.createQuery("fromGoodswheresale=1”);
al=(ArrayList)query.list();
}catch(HibernateExceptione){
//TODOAuto—generatedcatchblock
e。
printStackTrace();
}finally{
session。
close();
}
returnal;
}
〈actionname=”saleGoodsAction”class="org。
action.GoodsAction"method=”getSaleGoo
ds”>
〈resultname="success”〉saleGoods。
jsp〈/result〉
〈/action〉
3.2.2分层结构和文件调用关系
先由JSP页面发出请求调用org。
action包下saleGoodsAction,调用里面的getSaleGoods方法,然后调用org。
daoimpl包里的findSaleGoods方法,查询数据库,查到特价商品的列表,保存进requese对象的saleGoods变量里,然后通过调用取出其中的值,显示到主页面。
3.3畅销商品块实现
3。
3.1模块功能实现和关键代码说明
图3。
1畅销商品模块流程图
代码如下:
publicStringgetHitGoods()throwsException{
GoodsDaoImplgdao=newGoodsDaoImpl();
ArrayListhitGoods=(ArrayList)gdao。
findHitGoods();
Maprequest=(Map)ActionContext。
getContext().get("request”);
request。
put(”hitGoods”,hitGoods);
return"success”;
}
publicListfindHitGoods(){
Sessionsession=null;
ArrayListal=newArrayList();
try{
session=HibernateSessionFactory.getSession();
Queryquery=session.createQuery(”fromGoodsorderbyiddesc”);
al=(ArrayList)query。
list();
}catch(HibernateExceptione){
//TODOAuto-generatedcatchblock
e。
printStackTrace();
}finally{
session。
close();
}
returnal;
}
〈actionname="hitGoodsAction"class="org。
action。
GoodsAction”method=”getHitGoods">
jsp〈/result>
〈/action>
3。
3。
2分层结构和文件调用关系
先由JSP页面发出请求调用org。
action包下hitGoodsAction,调用里面的getHitGoods方法,然后调用org。
daoimpl包里的findHitGoods方法,查询数据库,查到特价商品的列表,保存进requese对象的HitGoods变量里,然后通过调用取出其中的值,显示到主页面。
3。
4查看订单模块实现
3。
4。
1模块功能实现和关键代码说明
图3。
1查看订单模块流程图
3.4.2分层结构和文件调用关系
先由JSP页面发出请求调用org。
action包下的findId方法,findId调用DaoImpl包里的findOrderById,把得到的结果,保存到session里取名order1通过orderdetail里取变量得到这个值,显示到主页面。
代码如下:
publicStringfindId()throwsException{
OrderDaoImplodao=newOrderDaoImpl();
List〈Orderdetail>list2=odao.findOrderById(onumber);
Ordertableorder1=odao。
findOrder(onumber);
Maprequest=(Map)ActionContext.getContext()。
get("request”);
request。
put(”orderlist2",list2);
request。
put(”order1",order1);
return”success";
}
publicListfindOrderById(longid){
Sessionsession=null;
Listtry{
session=HibernateSessionFactory。
getSession();
Queryquery=session。
createQuery("fromOrderdetailwhereorderid=?
”);
query.setLong(0,id);//设置第一个问号
g=(List〈Orderdetail〉)query。
list();
}catch(HibernateExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}finally{
session。
close();
}
returng;
}
action。
OrderAction”method="findId"〉
order_detail。
jsp
〈/action〉
4系统运行结果
主页面,默认显示新品上市页面:
特价商品页面:
畅销商品页面:
按倒序排列
查看订单页面:
5课程设计总结
通过本次课程设计,使我更加深刻的了解了这么课程的重要性,由于我们知识有限,这次开发的网站也存在着很多的不足,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情
在此感谢我们的老师。
老师您严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次网站设计的细节和每个数据,都离不开老师您的细心指导.而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。
参考文献
[1]孟彩霞。
计算机软件基础[M]。
西安:
西安电子科技大学出版社,2003.
[2]缪勇,陈亚辉,李新峰高立辉。
JSP网络开发逐步深入[M].北京:
清华大学出版社,2007.