首页 > 精品范文库 > 12号文库
基于J2EE的网上购物配送管理系统设计
编辑:夜色温柔 识别码:21-1077886 12号文库 发布时间: 2024-07-25 02:13:54 来源:网络

第一篇:基于J2EE的网上购物配送管理系统设计

基于J2EE的网上购物配送管理系统设计.txt曾经拥有的不要忘记;不能得到的更要珍惜;属于自己的不要放弃;已经失去的留作回忆。收稿日期:202_-09-01。纪寿文,博士,主研领域:生产物流规划与

仿真,物流配送,AGVS等。

基于J2EE的网上购物配送管理系统设计

纪寿文 林晓宇

(清华大学深圳研究生院现代物流研究中心 深圳518057)李克强 缪立新(清华大学汽车系 北京100084)摘 要

本文采用J2EE技术设计了物流企业电子商务的在线购物和配送管理系统。文中详细介绍了系统的逻辑及功能结构、在

线购物模块和登录注册模块的流程及其J2EE设计方法、采用MVC模式设计控制模块的方法,并给出了核心流程代码。文中也简单

介绍了配送管理模块采用的CW算法。

关键词

J2EE 在线购物 物流配送 CW算法

THE DESIGN FOR WEB SHOPING AND DISTRIBUTING MANAGEMENT BASED ON J2EE Ji Shouwen Lin Xiaoyu(Modern Logistics Research Center ofShenzhen Graduate School, Tsinghua University, Shenzhen518057)Li Keqiang Miao Lixin(Automobile Department, Tsinghua University,Beijing100084)Abstract

Web shopping and dirtributing system for logistics corporation electronic commerce is designed by using J2EE technology in the paper.The logistic and function structure,flow chart and designmethods based on J2EE ofweb shopping,entry and registermodules are introduced particular-ly.The designing method for control module by usingMVC mode is described,and the core flow code is given.The CW algorithm used in distributing management module is also introduced.Keywords J2EE Web shopping Logistics distribution CW algorithm 1 引 言

电子商务的出现,极大地方便了最终消费者,使消费者不必 再跑到拥挤的商业街,一家一家地挑选自己所需的商品,而只要 坐在家里,在因特网上搜索、查看、挑选,就可以完成他们的购物 过程,这些就是所谓的在线购物[1]。

在线购物的成功主要取决于购物系统的功能完善和物流配 送系统的可靠运行。购物系统如果功能完善、验证可靠,使用方 便,则便于用户的浏览和购物。而用户在提交购物订单和支付 货款后,物流配送则成为实现在线购物最终成功的关键,物流配 送的核心问题则是配送车辆的调度。

本文面向企业的电子商务,将对在线购物系统和物流配送 系统统筹考虑,实现信息的共享和车辆的优化调度,为企业提供 了一个易于操作的低费用物流管理系统、基于先进的优化网络 技术的车辆调度以及配送系统。物配平台使得用户可以随时掌 握实时的物流信息并根据客户的要求远程调度产生最佳的配送 方案。该系统的设计中完全采用了面向对象的技术,在实际开发

中采用大量的JAVA技术,例如Servlet、JSP、JavaBean、JDBC、EJB 等,是一套完全基于J2EE的最新技术体系,具有良好的可平台 无关性、可扩展性等[2]。

使用本在线购物系统,企业就可以拥有自己的网络商城,让 企业在技术方面花费最少,从而全力以赴进行货源开发和业务 经营,迅速地展开销售工作。在线商店具备普通商店的大多数 特点,同时又比普通商店具有投资小,运营时间长,无人职守等 特点。2 系统结构

系统包含在线购物模块和物流配送模块,其中在线购物系 统的核心是购物车模块,物流配送系统的包含配送方式选择、配 送路线选择、配送管理等,核心是CW调度算法。两个模块通过 订单信息有机的集成为一个整体,如图1所示。图1 集成系统结构 2·1系统逻辑结构

从逻辑上讲,本系统分为四个层次。分别为用户层、表现

层、业务处理层、数据资源层。详细分析了物流配送企业的需 求,设计系统的逻辑层次结构如图2所示。

2·2系统功能结构

适应现代电子商务快捷的需求,系统中传递的订单是电子

第21卷第3期

计算机应用与软件Vol·21,No·3 202_年3月

Computer Applications and Software Mar·,202_图2 化的。因此,根据使用对象的不同把集成系统划分为调度员、客 户、管理员三个大模块,如图3所示。给客户使用的就是所谓的 在线购物系统,而在服务器端使用系统的是调度员和管理员。调度员主要进行车辆调度,也是一个相对的“用户”。管理员主 要进行客户管理、权限管理、地图信息管理等。图3 集成系统功能模块图 在线购物子系统的设计与实现

3·1在线购物子系统的功能与流程

在线购物是一堆接口定义清晰的独立模块组成。

控制模块:它来分发请求到各个业务处理逻辑,屏幕跳 转控制,对应的组件处理。

登录和注册:登录和注册模块要求用户在访问某些页面 时必须登录。

购物车模块:购物车跟踪用户购物过程。

类别模块:根据用户查询需求提供一个货物类别视图。

客户模块:表示客户信息:地址,联系方式等。各模块之间的信息流程如图4所示。图4 在线购物子模块与信息流程图

3·2在线购物系统的数据库

采用SQL设计在线购物系统的数据库表,主要包括客户信

息表、货物信息表、订单信息表、订单细目表。是允许数据库访

系统逻辑结构图 问的WEB应用程序开发的非常重要的一部分,它将直接影响系 统的长期有效性和产品化程序。

客户信息表中存储了客户的所有信息。其中,customerID是 数据库系统自动生成的。addToMap和nodeID两字段是与另一 子系统GIS信息表相关联的,用来表示电子地图信息。货物信息表描述了每种货物所具有的详细信息。除了货物 自身的信息,还有货物分类的有关信息。我们对货物进行二次 分类,分别用baseClass,subClass来描述货物所属的分类,便于查 询和管理。

3·3采用MVC模式设计与实现控制模块

MVC模式是通过将客户的请求导入单一的对象—控制器。这个控制器随之处理所有的请求,决定下一个要显示的视图,并 且实现所有为保护系统而需要的安全请求。同时,控制器并不 处理商业逻辑,商业逻辑由专门的模型(MODEL)提供。如图5 所示。

图5 MVC模式

经过这样的处理,JSP页面主要起到表达的作用,而由

Servlet控制页面间的跳转,系统商业逻辑和数据由Model来提 供,可以是EJB或JavaBean。

在线购物系统中的ControlServlet就是一个控制器。接收客 户端响应,请求业务逻辑,最后指示跳转页面,如图6所示。图6 在线购物系统MVC模式图

ControlServlet具体代码如下,限于篇幅,只列出与控制功能 相关的代码,并略去部分调用Model的代码。

在ControlServlet中由if条件语句来判断接收页面的请求, 执行相应逻辑,做出处理后,最后由gotoPage()方法跳转到相应 的页面。

pubilc class ControlServlet extends HttpServlet{ static final private String CONTENT TYPE=″text/html;charset=gb2312″;SCBean scb=new SCBean();public void init()throws ServletException{} public void doGet(HttpServletRequest resuest, HttpServletResponse response)throws ServletException;IOException{ doPost(request,response);} if(getPara.equals(″登录″)){

String lonName=ChineseCharSet.toByteString(request.getParameter(″logName″));

String password=ChineseCharSet.toByteString(request.getParameter(″Password″));

DAOFactory SQLServerFactory=DAOFactory.getDAOFactory(DAOFactory.SQLSERVER);

CustomerDAO custDAO=SQLServerFactory.getCustomerDAO();

Customer cust=custDAO.findCustomer(longName);

if(cust!=null&&cust.getPassword().equals(password)){

gotoPage(″/goodsList.jsp″,request,response);

第3期

纪寿文等:基于J2EE的网上购物配送管理系统设计29

}else{

gotoPage(″/loginfailed.html″,request,response);

}} else if(getPara.equals(″注册″)){

gotoPage(″/register.jsp″,request,response);} else if(getPara.equals(″放入购物车″)){

gotoPage(″/shoppingCart.jsp″,request,response);} else if(getPara.equals(″删除″)){

gotoPage(″/shoppingCart.jsp″,request,response);} else if(getPara.equals(″查看购物车″)){

gotoPage(″/shoppingCart.jsp″,request,response);} else if(getPara.equals(″清空购物车″)){

gotoPage(″/shoppingCart.jsp″,request,response);} else if(getPara.equals(″提交订单″)){

gotoPage(″/shoppingCart.jsp″,request,response);} } 3·4购物车模块

购物车模块跟踪用户一次的购买过程。

购物车模块需求: 必须能够跟踪用户购买的货品内容(item)。购物车中的每

个item有唯一标示ID,此外,还有item归属的货物的ID,属于的 种类、名字和单品报价。

每个item必须和一个非负的数量有对应关系,客户可以增 删改和改变item数量,或者清空购物车。

购物车的设计: 购物车是和一个session关联的,因为,归属与某个用户,跨 越多个请求。设计的关键在于在哪里存放购物车的状态信息, 我们使用了有状态的session EJB。此外,使用EJB层存放这些状 态信息,客户端可以不用局限于WEB客户端。购物车的结构如 图7所示。

图7 购物车结构

图7是购物车模块的结构图,客户端使用ShoppingCartLo-calHome来创建ShoppingCartLocal。ShoppingCartEJB这个bean中 包含了所有要求的操作。购物车ShoppingCartEJB包含了一个货 品内容的CartItem对象的Collection,这个CarrItem类是个普通的 可序列化远程传输的类。

购物车模块的实现: 购物车被实现成一个有状态的session EJB,里面包含一个 货品内容(item)的Collection。EJB同时提供出各种方法,来增删 改里面的内容,甚至清空。

EJB层的组件可以直接访问购物车EJB。WEB层维护一个 EJB层的控制器,这个控制器有个方法getShoppingClientFacade()返回ShoppingClientFacadeLocal接口,这个接口的getShoppingCart()方法返回当前用户的购物车session EJB引用。4 车辆调度核心算法———CW算法与实现

CW算法由Clarke和Wright提出,该算法简单易用[3]。本文 将配送货物的体积约束引入CW算法在中,以改进的CW节约 启发式算法来进行车辆的优化调度。

4·1算法原理与求解步骤

假设以Cij表示车辆从点i行驶到点j的费用,可以得到点i 和点j连接在一条线路上的费用节约值。s(i,j)=Ci0+C0j-Cij 若各项任务要求在一定的时间范围内完成,按费用节约值 s(i,j)连接点i和点j时,可能会使j后面的任务的执行不满足 时间要求。当连接点i和点j所在线路时,若车辆到达j点的时 间比原线路上j点任务的开始时间提前,则车辆在j后面的任务 处有可能需要等待;若连接后到达j点的时间比原线路上j点任 务的开始时间推迟,则j后面的任务在执行时可能会发生延迟。以EFj表示连接点i和点j所在的线路后,车辆到达j点的 时间比原线路上车辆到达j点时间的推迟量(或提前量),则EFj 可如下得到: EFj=si+Ti+tij-sj 显然,EFj<0时,车辆到达j点任务的时间提前;EFj=0时, 到达时间不变;EFj>0时,到达时间推迟。其步骤如下: ①首先计算各个点i和点j之间线路的费用节约值s(i,j), 形成集合M,并按照从大到小对s(i,j)进行排序。其中: s(i,j)=ci0+c0j-cij ②若M为空,则终止叠代,否则对M中的第一项s(i,j)考 察是否满足下列条件之一,如满足则转下步,否则转⑥。(a)点i和j均不在已构成的线路上;(b)点i和j在已构成的线路上,但不与车场相连;(c)点i和j位于已构成的不同线路上,均不与车场相连, 且一个是起点,一个是终点。

③考察点i和j连接后的线路上总货运量Q,若Q≤q,则转 下步,否则转⑥。

④计算连接点i和j所在的线路后,车辆到达j点的时间比 原路线上车辆到达j点的时间的变化量EFj:EFj=si+Ti+tij-sj。

(a)若EFj=0,转⑤;(b)若EFj<0,则计算Δj-,当|EFj|≤Δj-,转⑤,否则转⑥;(c)若EFj>0,则计算Δj+,当|EFj|≤Δj+,转⑤,否则转⑥。式中,Δj-为线路上j点后面的各任务处均不需要等待的到 达j点时间的最大允许提前量,其中:Δj-=min r≥j{Sr-ETr}。Δj+ 为线路上j点后面的各任务不违反时间约束的到达j点时间的 最大允许推迟量,其中:Δj+=min r≥j{LTr-Sr}。

⑤连接点i和点j,计算车辆到达各任务时的新时间。⑥令M=M-s(i,j),转②。

4·2 CW算法类的设计

因为我们采用面向对象的程序设计语言java,在编码之前, 建立了面向对象的模型。ResultList、Task、ScheduleValueList、Item 这四个类都是辅助的类。ResultList用来存储计算结果;Task类 用来保存一些调度所需的数据;ScheduleValueList、Item都是计算 过程中的算法需要的中间数据。

计算机应用与软件202_年5 应用程序的部署 基于J2EE的web应用程序是一组Servlet、JSP页面、标记 库、HTML文档、图像、样式表以及其它WEB内容的集合。构成 应用程序的组件必须被打包在一起进行传输和部署。J2EE应 用程序中打包后的组件被存储在一个特定类型的JAR文件中, 这个JAR文件被称为企业应用程序归档或EAR(Enterprise Archive)。同时J2EE应用程序还需要一些关于各个不同模块如 何关联以及部署环境的信息,这些信息被记录在一些被称为部 署描述符(DD)的XML文件里。图8显示了一个EAR文件的结 构。

图8 EAR的结构

部署描述文件web.xml是一个XML文件,包括如下内容: ServletContext初始化参数: Servlet/JSP定义;MIME类型映射;错误处理页面;Session配置;Servlet/JSP映射;首页文件列表;安全约束。

web应用部署描述文件web.xml应该放入主web应用目录 的WEB-INF子目录中,可以用来初始化Servlet、指定MIME(Mul-tipurpose Internet Mail Extensions)类型、指定J2EE资源等等。参考文献

[1]梅绍祖、李伊松、鞠颂东,电子商务与物流,人民邮电出版社,202_·8· [2] Marci Frohock Garcia,Jamie Reding,EdWard Whalen,Steve Adrien Deluca 著,孙岩、黄波、张宁译,SQLServer 202_系统管理员宝典,北京:清华 大学出版社,202_·7·

[3]视崇隽、刘民、吴澄,“供应链中车辆路径问题的研究进展及前景”, 《计算机集成系统-CIMS》,202_,Vol.7(11):1~6·(上接第4页)4 术语权重重构 获得查询q的TAGq查询集后,重新调整术语权重,构造新 的向量Q′。其基本思想是:给定一个查询方案,根据节点的路 径度,强化(strengthen)叶子节点权重,弱化(weaken)图TAGq中中 间节点的权重,从而优化用户查询的目的。

TWA(TermWeight Adjustment Algorithm,术语权重调整)算法: 输入:(1)术语关联图TAGq查询方案GQT;(2)查询术语/权重集合Q={(q1,w1),„,(qn,wn)}。输出:查询术语/权重集合Q′。TWA算法: 1)构造空的术语/权重集合Q′=Φ。2)计算每个节点的路径度: a)令GQT中所有节点的路径度为0;b)for GQT中每条起始路径P=(t1,„,tk)do{ for i=1,2,...,k do path degree(ti)=path degree(ti)+1;} 3)对每个以t为叶子节点的起始路径P=(t1,„,tk,tk=t): a)修改t权重:Wt=Wt+Wti*l/path degree(ti)(1≤i

例子3 设例子2对应的查询术语/初始权重见表1。通过 权重调整算法(令l=0.1),得到表1中不同查询方案的术语权 重。不同的查询方案使得术语A1,m1和A2,1的最终权重不同。表1 查询术语/权重优化前后对照表

A1A2A3AnA1,m1A2,1A3,k3An,mnA1,1,1,k1 初始权重0·200 0·200 0·200 0·200 0·400 0·400 0·400 0·400 0·600 GQp1路径度1 1 1 1 2 0 1 1 3 权重0·197 0·197 0·180 0·190 0·387 0·000 0·410 0·410 0·629 GQp2路径度1 1 1 1 1 1 1 1 3 权重0·197 0·197 0·180 0·190 0·393 0·393 0·410 0·410 0·623 5 结 论

本文引入术语关联网络TAN概念,检查查询术语的可达关 系,建立术语关联图TAG,构成新的查询,接着利用术语权重调 整算法计算新的术语权重,形成基于术语关联的查询。本文贡 献之处在于利用TAN发现查询中存在的术语关联,并利用术语 关联重新计算术语权重,从而突出用户查询目的。

本文只研究了术语之间的isa联系来体现概念之间的泛化/ 细化联系。由于术语之间存在多种关联,各种关联的性质存在 较大差异。以后的研究内容主要分析可达术语之间的关联种类 和距离,对于不同的可达关联予以不同的考虑,如予以不同的权

重和伸缩因子等。参考文献

[1] Panagiotis G.Ipeirotis,Luis Gravano,Mehran Sahami.Automatic classifica-tion of text database through query probing,WebDB 202_.[2] Luis Gravano,Hector Garcia-Molina,Anthony Tomasic,GLOSS:Text-Source Discovery over the Internet,Vol.24,No.2,June 1999,ACMTransactions on Database Systems.[3] Luis Gravano,Querying Multiple Document Collections across the Internet, 1997,PHD Thesis.[4] Ricardo Baeza-Yates,Berthier Ribeiro-Neto.Modern Information Retrieval, 1999,ACMPress.[5] Weiyi Meng,King-lup Liu,Clement Yu,et al,Estimating the Usefulness of Search Engines,International Conference of Data Engineering,1999.[6] J.Kleinberg.Authoritative Sources in a hyperlinked environment.In Proceed-ing of the 9thAnnual ACM-SIAM symposium on Discrete Algorithms,pp.668 ~677,January 1998.第3期

纪寿文等:基于J2EE的网上购物配送管理系统设计31

第二篇:网上购物管理系统

课程实践报告

课程名称:软件工程实践II 项目名称:网上购物系统 专业班级:

名: 学

号:

指导教师:

成绩:______ 报告日期:202_年12月9日

网上购物管理系统

摘要

随着计算机技术在各行各业日益广泛和深入的应用,网络的概念早已深入人心。网络在各行各页的发展战略占据了重要的位置,成为了商家不可分割的一部分。网络已经成为了商家展示自己的另一个舞台。商家建立网站,通过网站可以实现,浏览商品,网上购物,结账

本系统实现了网上购物商城的基本功能和购物流程。主要模块有:商品查询、商品管理、商品显示、购物车、订单管理、用户管理等功能。其开发主要包括:数据库的建立,前台Web页面设计,后台管理。本系统采用MySql数据库和Tomcat服务器实现,并且使用HTML、JSP等技术来编辑网页,并运用Hibernate技术把数据库和动态网页相关联。

关键字

关键词:网上商场,购物车,结账,Tomcat,Sevlet,JSP,MySql数据库

目录

摘要..............................................................................................................................................2 关键字..........................................................................................................................................2 1需求分析.......................................................................................................................................4 1.1背景.........................................................................................................................................4 1.2可行性分析.............................................................................................................................4 1.3对性能的规定.........................................................................................................................4 1.3.1时间特性要求..................................................................................................................4 1.3.2灵活性..............................................................................................................................5 1.4其他专门要求.........................................................................................................................5 1.5运行环境的规定.....................................................................................................................5 1.6设备.........................................................................................................................................5 1.7支持软件.................................................................................................................................5 2功能分析.......................................................................................................................................6 2.1功能分析的目的.....................................................................................................................6 2.2业务描述.................................................................................................................................6 2.3用例图.....................................................................................................................................8 2.4 状态图..................................................................................................................................10 3模块设计.....................................................................................................................................10 3.1系统功能模块.......................................................................................................................10 3.2模块分析...............................................................................................................................11 4数据库分析与设计.....................................................................................................................18 4.1数据库分析...........................................................................................................................18 4.2系统整体ER图的设计........................................................................................................19 4.3数据库设计...........................................................................................................................20 5编码,实现及测试.....................................................................................................................22 5.1各功能源代码.......................................................................................................................22 6 结论............................................................................................................................................29 6.1系统优点...............................................................................................................................29 6.2系统缺点...............................................................................................................................29 6.3未来发展...............................................................................................................................29 7实验小结.....................................................................................................................................30 7.1 孙佳伟实验小结..................................................................................错误!未定义书签。7.2 喻道斌实验小结..................................................................................错误!未定义书签。7.3 金龙实验小结......................................................................................错误!未定义书签。1需求分析

1.1背景

在发达国家,电子商务的发展非常迅速,通过Internet进行交易己成为一种潮流。基于电子商务所连带出的商品交易方案、电子结账方案和信息安全方案等,已逐步成为国际信息技术市场竞争的焦点。随着电子商务的日益发展,产生了网上购物、网络广告等新兴信息产业,从侧面反应了电子商务正在对社会和经济产生着深刻的影响。

在我国,网上购物从无到有也不过短短几年时间。但是就在这几年时间,网络购物已经深入千家万户,普通的购物已经不能满足人们的消费。网上购物以其诸多优势,获得人们的青睐。它以其方便,快捷,高效,高选择性等优点,迅速得到了广大网友的喜爱与青睐,现在的网上购物已经非常普及。本系统设计就是为了满足广大网友的这些需求,改变传统的交易模式,通过互联网完成查看商品,购买商品等完成网上交易。方便消费者,同时对商家的商品信息进行管理,便于商家的商品数据分析。截止202_年1月中国有网上购物的用户将近5000万人,这足以证明网上购物具有良好的群众基础,网上购物方式日趋被大家所接受。因此我们小组致力于做一个基于B/S架构的网上购物管理系统,使广大用户可以享受网上购物的种种优势。

1.2可行性分析

随着计算机的普及,Internet的发展,网购已经成为人们生活消费中一大部分。一个网上购物系统可以为消费者提供软件条件,使其可以更加快捷,方便,实惠的选择商品,而商家也可以更好的管理商品,节约成本,两全其美。所以构建一个网上购物商城在运行上是完全可行的。

此次开发使用JSP作为开发语言,采用Servlet技术,Tomcat7.0座位Web服务器,采用MySql作为数据库,这几种技术及工具的方便,快捷,免费大大的缩短了开发的时间,减少了开发的成本。并且使得开发更方便安全,更利于后期的维护。网上购物服务系统给人们带来了方便,成为一种全新的商务模式。因此,不用出门就可以在家购物的新时尚已经到来,构建一个网上购物服务系统在经济上是完全可行的。

综上所述:开发本系统是完全可行的。

1.3对性能的规定 1.3.1时间特性要求

对于商品基本信息,订单信息管理的增加删除修改必须是实时响应,与客户端的交互响应时间不超过5s 1.3.2灵活性

操作方式的变化,可以直接从UI或从数据库输入行,对初始行进行增加,删除,删除等操作。

1.4其他专门要求

文字描述必须准确,精炼,通俗易懂。安全性要得以保障,可移植性要高,为了适应不同系统,程序吞吐量必须要大,否则不能动态适应购物网站的需要。

1.5运行环境的规定 1.6设备

开发环境: 操作系统:windows 7 硬件环境:

客户终端:pc机; 服务器:Tomcat 编译环境:Jdk 1.6 1.7支持软件

操作系统:** 开发软件:MyEclipse 数据库: Mysql

2功能分析

2.1功能分析的目的

从用户需求出发,对于网上购物系统做细致全面的功能分析,准确地定义网上购物系统的目标,确定系统必须做什么,再用UML建模,并以Rational Rose工具画出功能模型,以此形式分析确定此网上购物系统的功能。

2.2业务描述

用户进入网站后,可以根据价格高低确定是否进行筛选,不筛选则进入所有的商品浏览界面,筛选则得出筛选后的浏览界面。接着可以点击商品加入购物车,可以自己选择加入的数量。加入购物车以后可以查看购物车,在购物策划模块中可以选择添加或删除购物车商品,接着用户可以自行判断是否继续购物,如果继续购物则返回首页,不购物则进行结账。结账之后可以查看订单界面,这里有详细的订单信息。,否则注销退出。

下图为网上购物系统的业务流程图。

开始用户进入网站按照价格高低进行筛选筛选后的浏览界面浏览商品加入购物车查看购物车添加或删除购物车商品继续购物结账查看订单订单界面注销退出结束

图 1-1 系统业务流程图

2.3用例图

用例图

 浏览商品用例,可以实现浏览商品

 搜索商品用例,可以根据商品的价格进行筛选查询商品。 管理商品详情用例,可以实现对商品中所有信息的浏览。

 加入购物车用例,是用户才有的功能,能在浏览商品后把商品加入购物车  管理购物车用例,在加入购物车后扩展的功能,对于购物车内的商品可以增加删除  购买商品用例,用户可以对于商品显示页面的商品进行购买  管理自身订单,用户可以对自身的订单进行搜索,删除功能。 清空购物车用例,用户对购物车中所有商品进行清空

 浏览曾经的商品(历史记录)用例,用户可以在这里浏览曾经使用的商品  结账模块用例,用户可以在这里进行结账功能。

<>浏览商品显示商品详情用户筛选商品加入购物车

图1-2主用例图

删除商品用户浏览购物车清空购物车继续购物结账

图 1-3 购物车用例图

结账用户事务管理查看订单信息

图 1-4 结账用例图

2.4 状态图

对于系统进行状态细节分析如下 a)b)c)d)e)f)g)h)用户首页输入网址进入首页界面 用户浏览商品进入商品展示界面

浏览完之后可选择喜欢的商品进入购物车界面 在购物车中可以添加或删除商品进入更改商品界面

更改接受后确定是否继续购物,若继续择返回商品展示界面 若不继续购物则进入结账界面

在结账界面中进行查看订单,进入订单确认状态

订单确认无误后,则系统提交,之后用户可以注销退出。

按价格筛选用户输入网址首页浏览商品商品展示界面加入购物车购物车界面结账界面发出结账请求查看订单注销继续购物确定是否购物添加或删除商品订单确认状态退出

3模块设计

3.1系统功能模块

功能模块图:

系统总体分为前台展示模块,购物车模块,结账模块。

前台展示模块包括:浏览商品模块,筛选商品模块,商品详情模块,历史纪录模块。购物车模块包括:购物车展示模块,删除商品模块,清空购物车模块,继续购物模块。

结账模块包括:订单确认模块,提交订单模块,事务处理模块。

网上购物管理系统前台展示模块购物车模块结账模块浏览商品模块筛选商品模块商品详情模块历史纪录模块购物车展示模块删除商品模块清空购物车模块继续购物模块订单确认模块提交订单模块事务处理模块

图3-1 功能模块图

3.2模块分析

1:商品展示模块

这是网站的主页面,用户不登陆也可以进入该页面,登陆成功后,页面会显示用户的信息。此页面主要是显示一些主要商品的图片、名称、价格等信息,用户可以输入商品名称,种类等进行搜索,也可以直接点击商品查看商品细节信息。

图 3-2 商品展示模块

在主界面中可以根据价格的高低排序

2:商品详情模块

当你点击一个商品的链接,可以进入商品的详情页面,这里会相识一个商品的所有具体信息,可以看到书名,作者,价格,出版日期

图3-3 商品详情模块

3:购物车模块

用户喜欢的商品可以选择放进购物车里,可以在购物车里产看用户选择的商品的名称价格以及购物车商品的总价,用户可以对购物车中的商品进行操作,修改购买数量,删除商品,清空购物车,结账等。

图3-3 购物车前台模块

图3-4购物车展示界面

清空购物车

删除购物车中的某教材

图3-5清空购物车界面

图3-6删除购物车某教材

4:回顾商品模块

当您想看曾经浏览过的商品时,可以点击查看浏览的历史记录,根据最近浏览的显示记录排序

5:结账模块

图3-7 回顾商品模块

在购物车进行结算以后,会跳转至结账界面,系统会显示当前的信用卡姓名,信用卡帐号,当您提交时就会结算成功,并且通过事务管理防止重复提交

图3-8 结账模块界面

余额不足时提示

图3-8 余额不足界面

6:订单页面模块

在购物车进行结算以后,就会生成订单,订单会显示订单号、收货人、地址、电话等信息。点击查看详情就可以进入订单详情页面

图 3-9 订单页面模块

4数据库分析与设计

4.1数据库分析

对于以上模块的划分以及分析我们建立网上购物管理系统数据库,建了5个表,分别是帐户表(account),书籍信息表(mybooks),订单表(trade),订单项目表(tradeItem),用户信息管理(usersInfo),各表的实现的功能在上述模块设计中已经指出,此刻不再赘述。

帐户表(account)中的各列分别为:帐户编号(accounted)主码,帐户余额balance 书籍信息表(mybooks)中的各列分别为:书籍(Id)主码,作者(Author),标题(Title),价格(Price),出版日期(Publishingdate),车辆类型(Salesamount),车辆规格(Storenumber),单价预算(Remark)订单表(trade)中的各列分别为:订单编号(tradeid)主码,用户编号(userid)外码,订单日期(tradetime)订单项目表(tradeItem)中的各列分别为:订单编号(itemid)主码,书籍编号(bookid)外码,(quantity),使用年限(tradeid)用户信息管理(usersInfo)中的各列分别为:用户编号(userid),用户名(username),帐户编号(accountid)

4.2系统整体ER图的设计

用户编号订单编号帐户编号帐户余额订单表订单日期帐户表用户名用户编号帐户编号生成拥有用户信息管理拥有购买订单项目表书籍信息表订单编号书籍价格作者出版日期标题书籍编号使用年限

图4-1 系统整体ER图设计

4.3数据库设计

帐户表(account)设计

书籍信息表(mybooks)设计

图4-2帐户表(account)设计

订单表(trade)设计

图4-3书籍信息表(mybooks)设计

图 4-4订单表(trade)设计

订单项目表(tradeItem)设计

用户信息表(userinfo)设计

图4-5订单项目表(tradeItem)设计

图4-6 用户信息表(userinfo)设计 5编码,实现及测试

5.1各功能源代码

5.1.1 分页的实现

public ListgetPageList(CriteriaBookcb, intpageSize,String method){

String sql=null;System.out.println(“ method------------>”+method);if(method.equals(“price”)){ sql=“SELECT id, author, title, price, publishingDate, ” +

} elseif(method.equals(“salesamount”)){

} elseif(method.equals(“publishingdate”)){

} else{

} returngetForList(sql, sql=“SELECT id, author, title, price, publishingDate, ” +

“salesAmount, storeNumber, remark FROM mybooks ” + “WHERE price >= ? AND price <= ?order by price ”+ “LIMIT ?, ?”;sql=“SELECT id, author, title, price, publishingDate, ” +

“salesAmount, storeNumber, remark FROM mybooks ” + “WHERE price >= ? AND price <= ?order by publishingdate ”+ “LIMIT ?, ?”;sql=“SELECT id, author, title, price, publishingDate, ” +

“salesAmount, storeNumber, remark FROM mybooks ” + “WHERE price >= ? AND price <= ?order by salesamount ”+ “LIMIT ?, ?”;

“salesAmount, storeNumber, remark FROM mybooks ” + “WHERE price >= ? AND price <= ?order by price desc ”+ “LIMIT ?, ?”;cb.getMinPrice(),cb.getMaxPrice(),(cb.getPageNo()-1)*pageSize,pageSize);5.1.2:运用ajax技术实现页面的局部刷新

//ajax修改单个商品的数量

//1.获取页面中所有的text,并为其添加onclick事件 $(“:text”).change(function(){

varquantityVal = $.trim(this.value);varreg=/^d+$/g;varquantity=-1;

varflag=false;if(reg.test(quantityVal)){

} if(!flag){ alert('输入的数量不合法');$(this).val($(this).attr(“class”));return;}

var$tr = $(this).parent().parent();vartitle = $.trim($tr.find(“td:first”).text());if(quantity==0){

} varflag = confirm(“确定要修改” + title + “的数量吗?”);if(!flag){ $(this).val($(this).attr(“class”));} //2.请求地址为: bookServlet varurl = “Books”;

//3.请求参数为: method:updateItemQuantity, id:name属性值, varidVal = $.trim(this.name);varargs = {“method”:“updateItemQuantity”, “id”:idVal,//4.在updateItemQuantity方法中, 获取quanity, id, 再获取购物车对象, //5.传回 JSON 数据: bookNumber:xx, totalMoney return;

varflag2=confirm(“确定要删除”+title+“吗?”);if(flag2){ varserializeVal = $(“:hidden”).serialize();varhref=$tr.find(“td:last”).find(“a”).attr(“href”);window.location.href=href+ “&” + serializeVal;;return;} quantity=parseInt(quantityVal);if(quantity>=0)flag=true;

quantity:val, time:new Date()

“quantity”:quantityVal, “time”:newDate()};调用 service 的方法做修改

//6.更新当前页面的bookNumber和totalMoney $.post(url, args, function(data){

varbookNumber = data.bookNumber;vartotalMoney = data.totalMoney;$(“#totalMoney”).text(“总金额: ¥” + totalMoney);$(“#bookNumber”).text(“您的购物车中共有” + bookNumber + “本书”);},“JSON”);});5.1.3:运用ThreadLocal类实现数据库的连接与当前线程绑定,实现结账的事务操作

publicvoiddoFilter(ServletRequest request, ServletResponse response, FilterChain chain)throwsIOException, ServletException {

Connection connection = null;try {

connection = DBUtils.getConnection();

connection.setAutoCommit(false);

ConnectionContext.getInstance().bind(connection);

chain.doFilter(request, response);

connection.commit();e.printStackTrace();try {

}

HttpServletResponseresp =(HttpServletResponse)response;HttpServletRequestreq =(HttpServletRequest)request;resp.sendRedirect(req.getContextPath()+ “/error-1.jsp”);connection.rollback();e1.printStackTrace();} catch(SQLException e1){ } catch(Exception e){

}

}

ConnectionContext.getInstance().remove();DBUtils.Release(connection);

} finally{ 5.1.4:使用过滤器实现页面的编码

publicvoiddoFilter(ServletRequest request, ServletResponse response, FilterChain chain)throwsIOException, ServletException {

} String encoding = request.setCharacterEncoding(encoding);chain.doFilter(request, response);filterConfig.getServletContext().getInitParameter(“encoding”);5.1.5:数据库底层操作,运用泛型技术和反射技术

public class BaseDao implements DAO {

private Classclazz;

publicBaseDao(){

} @Override public long insert(String sql, Object...args){

long id=0;Connection conn=ConnectionContext.getInstance().get();try {

PreparedStatement for(inti=0;i

prepareStatement.setObject(i+1, args[i]);clazz = ReflectionUtils.getSuperGenericType(getClass());System.out.println(clazz);

privateQueryRunnerqueryRunner=new QueryRunner();prepareStatement=conn.prepareStatement(sql,java.sql.Statement.RETURN_GENERATED_KEYS);

}

} { } // TODO Auto-generated catch block e.printStackTrace();id=resultSet.getLong(1);} catch(SQLException e){ return id;@Override public void update(String sql, Object...args){

} @Override public T query(String sql, Object...args){

} @SuppressWarnings(“unchecked”)@Override public V getSingleValue(String sql, Object...args){

Connection conn=ConnectionContext.getInstance().get();try {

} return(V)queryRunner.query(conn, sql, new ScalarHandler(), args);// TODO Auto-generated catch block e.printStackTrace();} catch(SQLException e){ Connection conn=ConnectionContext.getInstance().get();try {

} return null;return(T)queryRunner.query(conn, sql, new BeanHandler(clazz), args);// TODO Auto-generated catch block e.printStackTrace();} catch(SQLException e){ Connection conn=ConnectionContext.getInstance().get();try {

} queryRunner.update(conn, sql, args);// TODO Auto-generated catch block e.printStackTrace();} catch(SQLException e){

} } return null;@Override public void batch(String sql, Object[]...args){

} @Override public ListgetForList(String sql, Object...args){

} Connection conn=ConnectionContext.getInstance().get();try {

} return null;System.out.println(“sql-----------”+sql);returnqueryRunner.query(conn, sql, new BeanListHandler(clazz),args);// TODO Auto-generated catch block

e.printStackTrace();Connection conn=ConnectionContext.getInstance().get();try {

} queryRunner.batch(conn, sql, args);e.printStackTrace();} catch(SQLException e){ } catch(SQLException e){ 5.1.6:使用session防止表单重复提交

publicvoidcash(HttpServletRequest request, HttpServletResponse response)

HttpSession session=request.getSession();

Thread.sleep(5000);String username=request.getParameter(“username”);String accountId=request.getParameter(“accountId”);StringBuffer errors=validateFormField(username, accountId);if(errors.toString().equals(“")){

errors=validateUser(username, accountId);if(errors.toString().equals(”“)){ throwsServletException, IOException, InterruptedException {

;

}

} errors=validateBookStoreNumber(request);if(errors.toString().equals(”“)){ }

errors=validateBalance(request,accountId);String code=(String)session.getAttribute(”code“);System.out.println(code+”---------“);String codeRe=request.getParameter(”checkCode“);if(!code.equals(codeRe)){ } if(!errors.toString().equals(”“)){ request.setAttribute(”errors“, errors);errors.append(”验证码输入不正确“);request.getRequestDispatcher(”/WEB-INF/pages/cash.jsp“).forward(request,service.cash(BookStoreWebUtils.getShopCart(request),username,accountId)

request.getRequestDispatcher(”/WEB-INF/pages/error.jsp“).forward(reques

} }

} if(valS==null){ request.setAttribute(”username“, username);request.getRequestDispatcher(”/success.jsp“).forward(request, session.removeAttribute(”date“);}

String val=request.getParameter(”date“);

String valS=(String)session.getAttribute(”date“);

if(valS!=null&&valS.equals(val)){ return;response);response);t, response);5.1.7:使用数据库连接池 <?xmlversion=”1.0“encoding=”UTF-8“?>

root

123456

jdbc:mysql:///bookstore

com.mysql.jdbc.Driver

2

5

5

10

20

5

结论

6.1系统优点

系统实现了网上购物商城的基本功能,可以很好的完成网上购物的一系列流程。而且方便快捷,高效。页面也很美观,大方。对整个系统的框架设计合理,大大提升了系统的整体性与耦合性。也方便了后期的进一步开发与维护。

6.2系统缺点

系统缺乏创新性,没有自己过多的新增功能,没有特别突出的特点。可以增加一些功能,来丰富系统,提升系统的实用性。例如增加商品的销量排行榜,方便用户查看畅销商品。增加商品的交易评价,方便用户判断是否购买此商品。

6.3未来发展

这里指为了使本系统更好的适应环境的变化,有必要进行适应性维护。一方面由于计算机技术的飞速发展,原来的系统不能适应新的软硬件,另一方面,应用对象也在不断的发生变化,将导致系统不能适应新的应用环境,因此,有必要对系统进行调整,以保证系统时时都能满足用户要求。

7实验小结

第三篇:网上购物系统设计

《软件课程设计》

项目名称:

年、班级:

小组成员:朱勇

------项目设计书

《网络购物综合平台》

202_级软工二班

张振宇 202_/8/16

1、需求分析:

1.1开发背景:

随着科学和网络的飞速发展,信息技术逐渐融入社会各个阶层,改变着人们的日常出行、行为习惯、工作态度和生活方式,不断为人们的生活增添新的靓丽色彩。在计算机硬件配置不断更新换代的时候,互联网的飞速发展也是一股同样不亚于其他任何领域的新生力量不断崛起,到如今,有点知识、地位的人,面前都会放上一台电脑或是一部智能手机,而在网络如此便捷的今天,网上购物也逐渐成为一种潮流在人群中如雨后春笋般迅速生长与传播,以一种骇人的速度发展壮大……

如此热闹的互联网,岂又缺少英雄豪杰,各方才俊大显神通,作为在校大学生,了解并体验信息网络潮流不仅是一种感受吸收,更是不错的训练机会,选择网上购物系统,不仅贴合当今信息时代的潮流,更是对未来大数据时代来临的前瞻。

1.2功能需求:

(1)、实现基本的查询、交易功能;

(2)、采用注册用户会员制,游客仅有查询信息功能;

(3)、用户登录使用验证码密码相结合;

(4)、注册会员拥有产品、商铺评论、打分功能;

(5)、各系统信息由管理员统一管理,具有最高权限;

(6)、1.3系统定义:

本系统是一个基于SSH构架,辅以网页设计、Javascript等技术的模拟实现简易网络购物体系流程的小型实验项目。通过分布式设计思路以及密码权限的约定实现面向对象的稳定性。项目内部本身多采用接口式设计,充分发挥Java EE企业级项目的封装性及内部可拓展性。

2、系统总体设计:

2.1系统构架:

Struts2、Spring、Hibernate + Ajax + extJS或JQuery(可选);

2.2系统流程:

2.2.1 管理员:

2.2.2 用户:

2.3系统结构:

2.3.1 结构图:

3、数据库设计与构架:

3.1 E-R结构图(图中只列出了键属性):

3.2数据库表设计:

3.2.1 概要:(1)、管理员:

Manager(Manager_id,Manager_name,Manager_mail,Manager_tel, Manager_password)(2)、注册用户:

User(User_id, User_name, User_mail,User_tel, User_password, User_Vlevel,User_marks,User_leftmoney,User_headphoto)(3)、店长/老板:

Boss(Boss_id,Boss_name,Boss_mail,Boss_tel, Boss_password,Shop_id,Boss_truename,Boss_adress)(4)、店:

Shop(Shop_id,Shop_name,Shop_level,Shop_type,Shop_adress,Shop_introduce)(5)、商品/货物:

Cargo(Cargo_id, Cargo_name, Shop_id, Cargo_type, Cargo_num, Cargo_price,Cargo_logo,Cargo_introduce,Cargo_mark)(6)、银行:

Bank(Bank_id, Bank_name)(7)、银行账户:

BAccount(Bank_id,account,password,funds)

(8)、送货信息:

SendMessage(Send_id,Send_adress,Send_post,Send_toname)(9)、订单:

Order(Order_id, FromDate,Deadline,AmountPay,Order_status,PayWay,Send_id)

(10)、交易记录:

Trecord(Record_id,Cargo_id,Shop_id,Cargo_num,Trans_date,Trans_amount)

(11)、评论列表:

Comment(Comment_id,Comments_text)

3.2.2 详细设计:

(1)、管理员: 名称

数据类型

长度

备注 Manager_id Manager_name Manager_mail Manager_tel Manager_password

int String String String String

<10000 20 20 20 15

不可为空

(2)、注册用户: 名称 User_id User_name User_mail User_tel User_password User_Vlevel User_marks User_leftmoney User_headphoto 数据类型 int String String String String int int double Varchar(200)

长度 >10000 20 20 20 15 <10 >0 >=0

备注 不可为空

(3)、店长/老板: 名称 Boss_id Boss_name Boss_mail Boss_tel Boss_password Shop_id 数据类型 int String String String String int

长度 >10000 20 20 20 15

>10000

备注 不可为空

不可为空

(4)、店: 名称 Shop_id Shop_name Shop_level Shop_type Shop_adress Shop_introduce 数据类型 int String char String String text

长度 >10000 20 2 20 30

备注 不可为空

(5)、商品/货物: 名称 Cargo_id Cargo_name Shop_id Cargo_type Cargo_num Cargo_price Cargo_logo Cargo_introduce Cargo_mark 数据类型 int String int String int double Varchar(200)text int

长度 >10000 20

>10000 20 >0 >0

>0

备注 不可为空 不可为空

(6)、银行: 名称 Bank_id Bank_name Bank_record 数据类型 int String int

长度 >10000 20 >0

备注 不可为空

(7)、银行账户: 名称 Bank_id account password funds 数据类型 int int String double

长度 >10000 >10000 15 >0

备注 不可为空 不可为空

(8)、送货信息: 名称 Send_id Send_adress Send_post Send_toname 数据类型 int String String String

长度 >10000 30 10 20

备注 不可为空

(9)、订单:

名称 Order_id FromDate Deadline AmountPay Order_status PayWay Send_id 数据类型 int Date Date double bool int int

长度 >10000 10 10 >0 1 1,2 >10000

备注 不可为空

不可为空

(10)、交易记录: 名称 Record_id Cargo_id Shop_id Cargo_num Trans_date Trans_amount 数据类型 int int int int Date double

长度 >10000 >10000 >10000 >0 10 >0

备注 不可为空 不可为空 不可为空

(11)、评论列表: 名称 Comment_id Comment_text 数据类型 int text

长度 >10000

备注 不可为空

4、模块功能分配介绍:

4.1用户信息管理:

(1)、管理员可以更改所有用户的资料;(2)、管理员负责用户账户的注册及注销;(3)、用户可以修改自己账户的除ID以外的所有信息;(4)、用户可以查看当下自己账户的交易记录及订单信息;(5)、用户设VIP等级,积分制度,可申请开店,由管理员负责;(6)、4.2商品信息管理:

(1)、管理员可以管理所有商品的资料;(2)、店主可以管理店内所有商品资料;

(3)、管理员负责添加、删除商店信息,店主管理商店信息;(4)、商品及商店分类,提供搜索便利;(5)、4.3交易信息管理:

(1)、管理员管理所有交易记录;

(2)、用户可以查看当下自己账户的交易记录及订单信息;

(3)、用户可选择支付方式及银行;

(4)、店主可查看店内交易记录;

(5)、支持选择时间段查看交易记录;

(6)、银行支付采用账号密码即时验证;(7)、4.4论坛信息管理:

(1)、用户可选择发表评论和商店评级;

(2)、提供好评推荐制度;

(3)、管理员支持查看、删除评论;

(4)、4.5系统安全管理:

(1)、登陆和支付采取账号密码和验证码相结合;

(2)、设置用户权限;

(3)、管理员拥有最高权限,可检查和修改所有数据库信息;

(4)、管理员在线管理;

(5)、购物支付采用即时验证;(6)、5、详细处理及流程介绍:

5.1 内部设计(命名未定——按照命名约定):

5.1.1 数据库连接与操作:建立相应包将所有连接相关的类与方法封装起来,实现面向对象,采用Hibernate技术实现;

5.1.2 数据库表与对象:对应JavaBean对相应表,并建立相应包封装; 5.1.3 外部操作:建立相应的操作类,以命名规则命名,并放入相应功能命名的包内(与对象命名无关);

5.1.4 异常与错误:用一个对应名称的包封装起来,内部添加对于各种异常与错误操作的页面与提示;

5.1.5 其他文件:按照文件类型建立相应包,再对号入座,各自包内再根据需要进行详细划分;

5.1.6

5.2 内部流程及处理:

5.2.1 管理员:

1)、基本操作流程:

2)、细节说明:

(1)、图中讲述了基本流程;

(2)、图中重复区块代表同一内容,为防止混乱而重复;

(3)、任何页面均有返回动能,图中特别突出出错后的返回;

(4)、详细页面设计内容会更为丰富,此图中只突出管理员权限。

3)、主要页面介绍:

(1)、初始页面:因参考淘宝、京东页面,所以风格有些类似,不过毕竟不可能那么丰富,因此也是暂定为三个板块:热门商品展示区域、分类及搜索区域、注册登录区域。

(2)、登陆界面:此界面包括分类登陆选择区,账号填写区、密码填写区、验证码填写区、链接区。

(3)、系统管理员界面:此界面包括:基础信息展示板块、管理员功能操作区。

(4)、查询、增删改信息处理界面:内容展示板块、搜索版块。

(5)、用户信息处理界面(管理员):对应用户信息查询、增删改信息处理界面;

(6)、商品信息处理界面(管理员):对应商品信息查询、增删改信息处理界面;

(7)、交易记录界面:内容展示区、功能处理板块(删除)。

(8)、错误处理界面:信息提示区、错误展示区、链接区。

5.2.2 用户:

1)、基本操作流程:

2)、细节说明:

(1)、图中存在约束关系,未明确标出;

(2)、图中用户为注册用户(未注册用户则先注册,但依然拥有查询信息的功能,不过要交易则需注册登录)

(3)、支付方式的不同会影响相应页面流程;

(4)、用户评论相应商品时会验证其是否购买产品,放置恶意评论;

3)、主要页面介绍:

(1)、注册页面:包括:用户基本信息填写区、密码填写区、密码确认区、链接区、功能操作区。

(2)、商店店铺界面:商品分类区、商品介绍区、商品推荐区、商店介绍区、功能操作区、评论区。

(3)、交易处理界面:订单信息填写区、功能链接区。

(4)、支付界面:账户信息填写区、功能链接区。

(5)、用户个人信息界面:用户信息显示区、用户功能操作区、链接区。

(6)、用户信息处理界面(用户):功能处理区(权限)、链接区。

(7)、评论处理界面:评论信息填写区、功能确认区。

5.2.3 店主:

1)、基本操作流程:

2)、细节说明:

(1)、店主的操作修改只针对于店内信息;

(2)、店主不能自己删除用户评论,可向管理员申请删除恶意评论;

3)、主要页面介绍:

(1)、店铺信息界面(店主):店铺基本信息展示区、功能操作区。

(2)、店铺信息修改界面:店铺信息修改区(权限)、功能链接区。

(3)、店铺评论界面:搜索区、链接区。

(4)、店铺交易记录界面:交易信息展示区、功能操作区、链接区。

(5)、商品信息管理界面(店主):商品信息展示区、功能操作区、搜索区、链接区。5.3 命名约定(英文):

5.3.1 数据库表:表名_字段类型;

5.3.2 对象JavaBean类:表名+Bean;

5.3.3 对象操作类:对象名+动作名;

5.3.4 二级操作间用: ”_”

隔开;

5.3.5 包名一般作为第一级名称;

5.3.6 功能操作函数:操作对象名+操作名;

5.3.7 遵循首字母大写优先原则。

6、后记:

6.1 开发平台:

代码编程:Myeclipse +Tomcat

页面设计:Dreamweaver

数据库设计:MySQL

其他:… 6.2 说明:

部分细节在本设计书中未清楚说明,到时视情况添加。

第四篇:网上购物系统

网上购物系统的实现

The realization of the online shopping system

总计 毕业设计(论文)表 格插 图

页 个

7 20

摘 要

本网上购物系统是一个基于Internet,采用B2C(Business to Consumers)模式,并根据现有的网上购物系统的现状而设计开发的电子商务平台。它不但可以扩大商家的规模和市场影响力,而且可以减少企业的经营成本,提高工作效率。

本文首先介绍了网上购物系统的现状及开发背景,然后论述了系统的设计目标,系统需求和总体设计方案,较详细的论述了系统的详细设计和实现。最后,本文对网上购物系统的运行环境配置和运行方式进行了介绍。

系统从游客、普通会员和管理员三者的角度出发,主要实现了以下功能。为游客提供了浏览商品信息和注册会员功能;为普通会员提供了会员注册、购物车管理、用户资料修改等功能;为管理员提供了用户信息管理、商品信息管理、商品类别信息管理等功能。在设计方面,本系统采用B/S三层结构,同时使用JSP技术进行动态页面的设计,从系统的安全性和代码的可重用性方面考虑,运用servlet对程序的关键代码进行封装。后台数据库选用SQL SERVER2008数据库。

关键词:网上购物系统 效率 B/S

I

Abstract

The online shopping system is an Internet-based B2C(Business to Consumers)mode, and the status quo of the existing on-line shopping system design and development of e-commerce platform.It can not only expand the business scale and market influence, and can reduce the operating costs of enterprises, improve work efficiency.This paper first introduces the background of the current situation and development of the online shopping system, and then discusses the design goals of the system, the system needs and overall design, more detailed discussion of the detailed design and implementation of the system.Finally, the operating environment of the online shopping system configuration and operation mode was introduced.System from the perspective of tourists, ordinary members and administrators of the three, the main achievement of the following features.Offers visitors browse merchandise and registered members function;Join for ordinary members, shopping cart management, user information modify functions;provides administrators with user information management, product information management, product category information management and other functions.In terms of design, the system uses B / S three-tier structure, and design of dynamic pages using JSP technology, consider using servlet to encapsulate the key code of the program from the security of the system and code reusability.Back-end database to use SQL Server 202_ database.Key Words: online shopping system;

efficiency;B/S

II

目 录

摘 要..........................................................................................................................I Abstract.....................................................................................................................II 第一章

概述...........................................................................................................1

1.1 网上购物系统的背景.....................................................................................................1

1.1.1 网上购物发展背景.............................................................................................1 1.1.2 网上购物系统开发技术背景.............................................................................1 1.2 网上购物系统的意义.....................................................................................................2

第二章

需求分析...................................................................................................3

2.1 系统可行性分析.............................................................................................................3 2.2 系统总体目标分析.........................................................................................................3 2.3 系统功能需求分析.........................................................................................................3

第三章

系统的开发技术及开发模式(开发工具)...........................................5

3.1 开发技术.........................................................................................................................5

3.1.1 开发语言----JSP..................................................................................................5 3.1.2 数据库----Microsoft sql server 202_..................................................................6 3.1.3服务器----Tomcat 6.0...........................................................................................6 3.2 MVC开发模式..............................................................................................................6

第四章 系统的实现及功能流程.............................................................................8

4.1 游客功能.........................................................................................................................8 4.2 普通会员功能.................................................................................................................9

4.2.1 会员登录功能.....................................................................................................9 4.2.2 会员信息管理...................................................................................................10 4.2.3会员购物功能....................................................................................................12 4.3 管理员的管理功能.......................................................................................................14

4.3.1 会员管理...........................................................................................................15 4.3.2 订单管理...........................................................................................................15 4.3.3商品类别管理....................................................................................................17

III

4.3.4 商品管理...........................................................................................................18 4.3.5 库销管理...........................................................................................................22 4.3.6公告管理功能....................................................................................................23 4.4 数据库的设计与实现...................................................................................................26

第五章 系统的使用...............................................................................................29

5.1 系统环境要求...............................................................................................................29 5.2 系统安装.......................................................................................................................29 5.3 系统运行.......................................................................................................................29

第六章 结束语.......................................................................................................30 参考文献.................................................................................................................31

IV

第一章

概述

1.1 网上购物系统的背景

随着社会的发展和人们生活节奏的加快,传统的购物模式已不能满足人们的需求,再加上Internet的迅速崛起,为电子商务的发展提供了技术支持,网上购物开始逐渐走进人们的生活。

1.1.1 网上购物发展背景

现行在网上交易的物品主要有虚拟的物品和实体的物品两种。虚拟的物品包括服务和虚拟商品,如电影、歌曲等。实体的物品即为我们常见的可触及的物品,如书、电器、衣服等。本网上购物系统里进行的是实体物品的交易。

网上购物最主要的是涉及购买物品、库存、物流三方面。然而电子商务在我国发展时间还短,各方面都还不成熟。如还没有完善的法律来规范和保障交易的安全进行,对商品的定价也缺乏有效的市场机制和宏观调控机制,除淘宝、当当网等较大型的交易平台有更专门、较安全的结算方式外,很多商城只能依靠“货到付款”等浪费时间人力的结算方式;对商品的保存方面,全国各地到处是分散的仓库,有的甚至就是在自己家里隔出一房间作为仓库,这很不利于商品的整体资源分配,造成很大的浪费;现在有存在很多的物流公司,更大的有申通、韵达、圆通等,各城市又有很多的只在本城市接受业务的小物流公司,这样的局面造成物流公司没有很好的服务意识,物品被损坏的事情时有发生,并且没有规范的赔偿机制。因此建立一个友好、安全的购物环境迫在眉捷。

存在多种电子商务模式。包括B2B,即,B2C(Business to Customer,即企业对消费者),C2C(Customer to Customer,即消费者对消费者)电子商务的前端商务平台,在其商务活动全过程中起着举足轻重的作用。本文主要考虑的是如何建设B2C的网上购物系统。1.1.2 网上购物系统开发技术背景

目前基于B/S模式下的购物系统开发发技术主要有ASP、PHP、JSP三种。三者各有优缺点。

对于ASP,基于Windows9X/NT平台下进行开发,它对数据库的支持性好,并且容易开发,但是安全性不好,并且跨平台性不好。对于PHP,它有开发容易,安全性好跨平台性好的特点,但是由于本身的一些缺点,不适合于开发大型的电子商务站点,更适合于开发小型的商业站点。对于JSP,虽然较难开发,国内也大多使用ASP和PHP,但是在国外是较为流行的开发技术,特别是应用于电子商务,大多是使用JSP。

第二章

需求分析

总体来说,ASP、PHP和JSP三者各有各的优势,我们应该根据实际情况来选择自己需要的技术,JSP有很好的跨平台性和安全性,我自己学得也是JSP,所以本系统使用的是JSP

1.2 网上购物系统的意义

传统的购物方式,需要有专门的店面来展示商品,并且要有多个营业员来出售商品,购买者也要花很长的时间在路上和交通费用等缺点。但是,使用网上购物系统有很多的好处。

对于网店的经营者,投资少,成本低。不需要花大量的时间和金钱去寻找和装修店面,并且网店的维护简单、便宜;一个人可在线同时与多名消费者进行交流,提高交易量,提高效率;更新产品时,也只需在网上进行商品信息的发布和更新,不用费尽心思在店里寻找场地来展示;上班时不用一直站着,只需与消费着在线交流即可;可以很方便的看到其他卖家商品的价格,作为参考来定位自己的商品。对于消费者,能够方便、快速收集商品信息,包括其他网店的价格、商品的性价比、其他消费者对其的评价等等,以此来决定是否购买,购买哪一件商品,从而能够更好的购得适合自己的物商;消费者可以足不出户,就购得商品,节约的时间和交通费用;消费者还可以将自己的购物心得在网上进行发布,实现信息的即时共享,与其他消费者进行交流。

总的来说,通过购物网站系统这一平台,将厂商、物流、卖家和买家等紧密的联系走来,可以方便、快捷的进行信息共享和沟通,扩大了交易的范围,大大的节约的成本。

第二章

需求分析

2.1 系统可行性分析

系统实现之前一定要做可行性研究,才能清楚的知道在现有的条件下系统能否实现,同时这也是一个很好的进行整体分析和把握系统的方法。因此可行性分析是重要的,也是必要的。

技术可行性分析。JAVA本身具有平台无关性、完全面向对象和简单性、可靠性、安全性等特点。JSP作为JAVA平台的一部分,使用JAVA完成动态WEB开发,是在HTML代码中嵌入JAVA代码以实现功能,由于JAVA语言的跨平台特性,所以JSP不会受到操作系统或者开发平台的制约,而且有多种服务器可以支持,如TOMCAT、WEBLOGIC、WEBSPHERE等,所以经常在中大型项目开发中使用。不难看出在JSP技术编写的程序应用于更灵活的、可扩展的、现有的技术条件下,能够完成功能。

经济可行性分析。此作品只是作为自己的毕业设计,不用很多的经济成本,当然也没有什么效益可言。

法律可行性分析。本系统不涉及商业目的,也不涉及侵权行为,是符合法律规定的。综上所述,本系统在各方面都是可行的,可以进行开发。

2.2 系统总体目标分析

本系统采取人机对话的方法,为用户提供一个数据存储安全可靠、界面友好、操作方便、运行稳定的购物系统。

2.3 系统功能需求分析

一个系统的成功与否,最重要的就是能否满足用户的使用需要。一个购物系统的用户主要是卖家和买家。因此,本购物系统应该要实现以下功能:

 会员注册功能。在购物商品前,网民需要注册成为网店的会员,填写个人信息,包括名称、密码、电子邮箱等。

 会员登录。未登录的网发只能浏览信息,而不能下订单。只是登录之生,才可以下订单购买商品。

 会员信息管理。会员登录之后,可以对自己的信息进行修改,如修改字码,修改电话号码,修改电子邮箱等。

 管理员管理注册会员。管理上员可以对已经注册的会员进行审查和管理。

第二章

需求分析

 管理员对商品进行管理。管理员可以上传新的商品,删除不再出售的商品,或者对商品的信息进行更新等。

 管理员对订单处理。管理员对会员下的订单进行管理,可以删除订单,使订单无效;也可以确认订单有效,成功购得商品。系统总的功能图如下

图2.3 系统总功能图

第三章

系统的开发技术及开发模式(开发工具)

3.1 开发技术

选择一个合适的开发平台,对于系统的开发是很重要的。开发一个系统,主要涉及的开发技术,一方面是要使用的开发语言,一方面是用于数据存储的数据库,还有一方面是要用到的数据库。本系统用到的是JSP开发语言,Mcrosoft sql server 202_数据库还有Tomcat 6.0服务器。3.1.1开发语言----JSP JSP技术所开发的Web应用程序是基于Java的,它拥有Java语言跨平台的特性,以及业务代码分离、组件重用、基础Java Servlet功能和预编译等特征。

 跨平台性。JSP是在Java语言基础上的,那么它可用Java API,应用于不同操作系统的数据库也可以为JSP服务,JSP使用JDBC技术操作数据库,从而避免了代码移植导致更换数据库时的代码修改问题。正是因为跨平台的特性,使得采用JSP技术开发的项目可以不加修改地应用到任何不同的平台上,这也应验了Java语言的“一次编写,到处运行”的特点。

 业务代码分离。采用JSP技术开发的项目,通常使用HTML语言来设计和格式化静态页面的内容,而使用JSP标签和Java代码片段来实现动态部分。程序开发人员可以将业务处理代码全部放到JavaBean中,或者把业务处理代码交给Servlet、Struts等其他业务控制层来处理,从而实现业务代码从视图层分离。这样JSP页面只负责显示数据即可,当需要修改业务代码时,不会影响JSP页面的代码。 组件重用。JSP中可以使用JavaBean编写业务组件,也就是使用一个JavaBean类封装业务处理代码或者作为一个数据存储模型,在JSP页面甚至整个项目中都可以重复使用这个JavaBean。JavaBean也可以应用到其他Java应用程序中,包括桌面应用程序。

 继承Java Servlet功能。Servlet是JSP出现之前的主要Java Web处理技术。它接受用户请求,在Servlet类中编写所有Java和HTML代码,然后通过输出流把结果页面返回给浏览器。其缺点是:在类中编写HTML代码非常不便,也不利于阅读。使用JSP技术之后,开发Web应用便变得相对简单快捷多了,并且JSP最终要编译成Servlet才能处理用户请求,因此我们说JSP拥有Servlet的所有功能和特性。

 预编译。预编译就是在用户第一次通过浏览器访问JSP页面时,服务器将对JSP页面代码

第三章

系统的开发技术及开发模式(开发工具)

进行编译,并且仅执行一次编译。编译好的代码将被保存,在用户下一次访问时,直接执行编译好的代码。这样不仅节约了服务器的CPU资源,还大大提升了客户端的访问速度。3.1.2 数据库----Microsoft sql server 202_ Microsoft sql server 202_是一个功能非常丰富的关系型数据库管理系统。

它包括了用于数据存储和处理的数据库引擎(Database Engin)、用于数据的移动复制和转换的Integration Services、用于数据挖掘应用程序的Analysis Services等等。当然,最重要也是最常用到的还是SQL Server Management Studio,它是一个集成环境,在这里可以编写SQL语句,可以对数据库的各个对象进行管理,数据库对象包括数据库关系图、表、视图、同义词、存储过程、函数、触发器、程序集、类型、规则和默认值等。一般情况下,我们可以在这里创建数据库,创建表等,并且对其进行管理。还有一个经常会使用的是SQL Server 配置管理器,在此对端口等信息进行管理,启动实例服务等。3.1.3服务器----Tomcat 6.0 Tomcat 6.0技术先进、性能稳定,而且是免费的,是目前比较流行的Web应用服务器。使用Tomcat6.0服务器,首先要进行安装和安装JDK,并且配置环境变量。Tomcat6.0主要文件夹有:

 bin。所有的可执行命令,启动和关闭服务器的命令都在此文件夹中  conf。服务器的配置文件夹,其中保存了各个配置信息  lib。Tomcat服务器所需要的各个库文件  logs。保存服务器的系统日志

 webapps。Web应用程序存放的目录,Web项目保存到此目录中即可发布  work。临时文件夹,生成所有的临时文件(*.java、*.class)

3.2 MVC开发模式

MVC一种设计模式,它强制的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:M(数据模型)、V(用户界面)、C(控制器)。它们各自处理自己的任务,其工作流程如下图:

图3.2 工作流程图

现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。

使用MVC模式,可以提高软件的健壮性,代码的重用率。

第四章

系统的实现及功能流程

第四章

系统的实现及功能流程

在前面的内容中,阐述了本购物网站系统的开发平台、所用到的技术和设计等,在本章将具体介绍系统的实现过程,所实现的功能。

本章主要介绍本系统的用户,包括普通游客、普通会员和管理员的功能实现流程、主要代码和界面,以及数据库的设计与实现。

4.1 游客功能

普通游客进入本系统,只能浏览网站。可以浏览商品信息、搜索商品和查看公告,还可以注册成为本系统的会员。但是不能登录本系统,也不不购买商品。

游客功能流程图

图4.1 游客功能图 进入本系统可以看到如下图首页。

图4.2 系统图

点击用户注册之后,进行注册界面,在里面如实填写个人信息,然后提交。如果提示信息不正确,则要重新填写信;如果提示注册成功,则成为本系统的会员,从此拥有会员的功能,关于会员的功能将在下节介绍。

注册界面如下

图4.3 注册界面图

4.2普通会员功能

当游客注册成功,成为本系统的会员之后,在游客的浏览商品和搜索商品的基础上又新增加了登录、购物功能,普通会员拥有的功能流程如下:

图4.4 功能流程图

4.2.1 会员登录功能

普通会员进行本系统后,可以输入自己注册时的用户名和密码登录本系统。会员登录界面如下

第四章

系统的实现及功能流程

图4.5 会员登录图

普通会员登录进行控制的主要代码如下

publicvoid doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

Validate vd = new Validate();String name = vd.getUnicode(request.getParameter(“name”));String pwd = vd.getUnicode(request.getParameter(“pwd”));UserLoginBean lb = new UserLoginBean();int flag = lb.login(name, pwd);ArrayList al = lb.getArrayLst();HttpSession session = request.getSession();session.setAttribute(“login”, al);if(flag == 2 || flag == 3){ } RequestDispatcher request.setAttribute(“error”, “1”);rd=request.getRequestDispatcher(“/qiantai/index.jsp”);rd.forward(request,response);} 4.2.2 会员信息管理

作为会员,最基本的权限功能是可以对自己的信息进行管理,如修改个人信息。登录之后点击用户中心,进入用户信息管理页面,则可以重新填写自己的新信息,以便购物。

图4.6 信息管理页面图 对会员修改信息进行功能实现的主要代码如下

publicvoid doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

Validate vd = new Validate();String id = vd.getUnicode(request.getParameter(“id”));String pwd = vd.getUnicode(request.getParameter(“pwd”));String age = vd.getUnicode(request.getParameter(“age”));String noid = vd.getUnicode(request.getParameter(“noid”));String address = vd.getUnicode(request.getParameter(“address”));String phone = vd.getUnicode(request.getParameter(“phone”));String email = vd.getUnicode(request.getParameter(“email”));String code = vd.getUnicode(request.getParameter(“code”));String sql = “update users set pwd='”+pwd+“',age='”+age+“',card='”+noid+“',address='”+address+“',phone='”+phone+“',email='”+email+“',code='”+code+“' where id='”+id+“'”;

InsertUpdateDelBean ib = new InsertUpdateDelBean();ib.insertANDupdateANDdel(sql);SelectBean sb = new SelectBean();String sql1 = “select * from users where id='”+id+“'”;String args[] ={“id”,“name”,“pwd”,“realname”,“sex”,“age”,“card”,“address”,“phone”,“email”,“code”,“type”};

ArrayList al = sb.select(sql1, args);request.setAttribute(“user”, al);RequestDispatcher rd=request.getRequestDispatcher(“/qiantai/modifyuser.jsp”);rd.forward(request,response);

第四章

系统的实现及功能流程

} 4.2.3会员购物功能

会员成功登录系统,并且确认个人信息之后,可以找到自己所需要的商品,查看商品的信息,包括生产日期、价格、对商品的介绍等等。然后加入购物车中,并且修改自己所需要购买的数量。系统会自己计算出每种商品的价格及本次订单所的消费总额。进入购物车后的界面如下

图4.7 购物车界面图 实现购物功能的主要代码如下

publicvoid doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException { String bookId = request.getParameter(“bookId”);//获取books_id String m = request.getParameter(“i”);String num = request.getParameter(“num”+m);//获取购物车修改数量 String str = “";//mapping跳转时的值

String sql = ”select * from books where id=“+bookId;//sql语句 String[] args = {”id“,”name“,”author“,”publishing“,”number“,”price“,”storage“,”brief“,”type“,”tate“,”sums“,”imgpath“};

String del = request.getParameter(”del“);//获取删除商品的记号

String remove = request.getParameter(”remove“);//获取清空购物车的记号 HttpSession session = request.getSession();ArrayList login =(ArrayList)session.getAttribute(”login“);//获取用户信息 SelectBean ib = new SelectBean();ArrayList al = ib.select(sql, args);//查询图书信息 int sum = 1;//购买一种图书的数量

if(login == null || login.size()== 0){ str = ”/servlet/SessLoginServlet“;//用户信息不存在跳到首页 }else{ str = ”/qiantai/shopping.jsp“;//跳到购物车页面

ArrayList shopping =(ArrayList)session.getAttribute(”shopping“);//获取购物车信息

if(bookId!=null&&!bookId.equals(”“)){

ArrayList altem =(ArrayList)al.get(0);if(shopping == null || shopping.size()== 0){//购物车为空时

ArrayList alShop = newArrayList();

} alShop.add(altem.get(0));alShop.add(altem.get(1));alShop.add(altem.get(5));alShop.add(”“+sum);shopping = newArrayList();shopping.add(alShop);boolean bool = true;for(int i = 0;i < shopping.size();i++){//查找是否有相同的商品,有

} if(bool){//没有的话,加入一个新商品

ArrayList alShop = newArrayList();

} alShop.add(altem.get(0));alShop.add(altem.get(1));alShop.add(altem.get(5));alShop.add(”“+sum);shopping.add(alShop);ArrayList alShop =(ArrayList)shopping.get(i);if(alShop.get(0).equals(bookId)){

}

sum = Integer.parseInt(alShop.get(3).toString())+sum;if(num!= null&&!num.equals(”“)){ }

alShop.set(3,”“+sum);bool = false;break;

sum = Integer.parseInt(num);}else{ 的话数目加1

} if(del!= null&&!del.equals(”“)&& shopping!=null&& shopping.size()!= shopping.remove(Integer.parseInt(del));//删除商品 } session.setAttribute(”shopping“,shopping);if(remove!= null&&!remove.equals(”“)&& 0){ session.getAttribute(”shopping“)!= null&&!session.getAttribute(”shopping“).equals(”“)){

} session.removeAttribute(”shopping“);//清空购物车 }

第四章

系统的实现及功能流程

} RequestDispatcher rd=request.getRequestDispatcher(str);rd.forward(request,response);4.3 管理员的管理功能

每个系统除了有供游客和普通会员使用的前台,还有应该有供管理员对系统进行管理的后台管理系统。在此后台管理系统中,首先是管理员登录后台管理系统,然后可以对注册会员进行管理,如删除不合法用户;可以对商品类别进行管理,如删除不需要的商品类别和新添商品类别等。并且可以点击本系统的logo进入系统的首页。

管理员功能流程图如下:

首先管理员登录进入后台管理系统,登录界面如下

图4.8 管理员登录图 后台系统登录主要代码如下

publicvoid doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

} Validate vd = new Validate();String name = vd.getUnicode(request.getParameter(”name“));String pwd = vd.getUnicode(request.getParameter(”pwd“));String str = ”“;AdminLoginBean lb = new AdminLoginBean();int flag = lb.login(name, pwd);ArrayList al = lb.getArrayLst();HttpSession session = request.getSession();session.setAttribute(”adminlogin“, al);if(flag == 2 || flag == 3){

} if(flag == 1){ } RequestDispatcher rd=request.getRequestDispatcher(str);str = ”/admin/booklist.jsp“;str = ”/admin/index.jsp“;request.setAttribute(”error“, ”1“);rd.forward(request,response);4.3.1会员管理

管理员进入后台管理系统台可以对已注册的普通会员进行管理,如查询所有的会员信息和删除普通会员,从而达到了解会员信息,并且删除不合法会员的效果。

会员管理界面如下

图4.9 会员管理界面图 对会员进行管理的主要代码如下:

publicvoid doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

String id = request.getParameter(”id“);SelectBean sb = new SelectBean();String sql = ”select * from users where id='“+id+”'“;String args[] ={”id“,”name“,”pwd“,”realname“,”sex“,”age“,”card“,”address“,”phone“,”email“,”code“,”type“};

ArrayList al = sb.select(sql, args);request.setAttribute(”user“, al);RequestDispatcher

第四章

系统的实现及功能流程

rd=request.getRequestDispatcher(”/admin/showuser.jsp“);rd.forward(request,response);}

4.3.2订单管理

管理员登录后台管理系统后,可以对订单进行管理,从而更好的掌握商品的销售情况,订单管理的界面如下

图4.10 订单管理图 订单管理所涉及的主要代码如下

publicvoid doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

Validate vd = new Validate();String userid = vd.getUnicode(request.getParameter(”userid“));String bookname = vd.getUnicode(request.getParameter(”bookname“));String orderda = vd.getUnicode(request.getParameter(”orderda“));String orderxiao = vd.getUnicode(request.getParameter(”orderxiao“));String sql = ”select a.id as userid,b.id as bookid,c.id as orderid,realname,phone,address,b.name as bookname,booksum,price,times from users a,books b,orders c where a.id=c.userid and b.id=c.bookid “;String[] args = {”userid“,”bookid“,”orderid“,”realname“,”phone“,”address“,”bookname“,”booksum“,”price“,”times“};

if(userid!= null&&!userid.equals(”“)){ } if(bookname!= null&&!bookname.equals(”“)){ } if(orderda!= null&&!orderda.equals(”“)){ sql += ”and a.id='“+userid+”'“;sql += ”and b.name like '%“+bookname+”%'“;

} } sql += ”and c.booksum>'“+orderda+”'“;if(orderxiao!= null&&!orderxiao.equals(”“)){ } SelectBean sb = new SelectBean();ArrayList al = sb.select(sql, args);request.setAttribute(”order“, al);RequestDispatcher rd=request.getRequestDispatcher(”/admin/order.jsp“);sql += ”and c.booksum<'“+orderxiao+”'“;rd.forward(request,response);4.3.3商品类别管理

对商城里的商品分类管理有利于提高效率,避免浪费,是很重要的。对已有的商品类别可以进行修改、删除,也可以新增商品类别。

新添加商品类别的界面和主要代码如下:

图4.11 添加商品类别图

publicvoid doGet(HttpServletRequest request, HttpServletResponse response)

} throws ServletException, IOException { Validate vd = new Validate();String name = vd.getUnicode(request.getParameter(”name“));String sql =”insert into types values('“+name+”')“;InsertUpdateDelBean ib = newInsertUpdateDelBean();int flag = ib.insertANDupdateANDdel(sql);String str = ”“;if(flag ==-1){

} RequestDispatcher rd=request.getRequestDispatcher(str);rd.forward(request,response);str = ”/admin/addtype.jsp“;request.setAttribute(”error“, ”1“);str = ”/admin/typelist.jsp“;request.setAttribute(”ok“, ”1“);}else{ 对已有商品类别进行修改界面和主要代码如下:

第四章

系统的实现及功能流程

图4.12 类别修改界面图

publicvoid doGet(HttpServletRequest request, HttpServletResponse response)

RequestDispatcher rd=request.getRequestDispatcher(”/admin/updatetype.jsp“);rd.forward(request,response);}

throws ServletException, IOException { Validate vd = new Validate();String id = vd.getUnicode(request.getParameter(”id“));String name = vd.getUnicode(request.getParameter(”name“));if(name!= null&&!name.equals(”“)){

} SelectBean sb = new SelectBean();String sql2 = ”select * from types where id='“+id+”'“;String[] args2 = {”id“,”name“};ArrayList al2 = sb.select(sql2, args2);request.setAttribute(”bookinf“, al2);String sql =”update types set name='“+name+”' where id='“+id+”'“;InsertUpdateDelBean ib = new InsertUpdateDelBean();ib.insertANDupdateANDdel(sql);当该商品类别里没有商品了的时候可以删除该商品类别,删除商品类别界面和主要代码如下

图4.13 删除商品类别图

if(typeid!= null&&!typeid.equals(”“)){

str = ”/admin/typelist.jsp“;sql = ”delete from types where id='“+typeid+”'“;int flag = ib.insertANDupdateANDdel(sql);if(flag ==-1){ } request.setAttribute(”error“, ”1“);

4.3.4 商品管理

对已有的商品可以进行修改、删除,也可以新增商品。商品的信息包括商品名称、生产时间、商品介绍等

新增商品的界面和主要代码如下

图4.14 新增商品界面图

publicvoid doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

Validate vd = new Validate();String name = ”“;String author = ”“;String publishing = ”“;String number = ”“;String price = ”“;String storage = ”“;String brief = ”“;String type = ”“;

第四章

系统的实现及功能流程

String tate = ”“;String path = ”“;String str = ”“;

SmartUpload mySmartUpload = new SmartUpload();//init mySmartUpload.initialize(config,request,response);try {

mySmartUpload.upload();name = mySmartUpload.getRequest().getParameter(”name“).trim();author = mySmartUpload.getRequest().getParameter(”author“).trim();publishing = number = mySmartUpload.getRequest().getParameter(”number“).trim();price = mySmartUpload.getRequest().getParameter(”price“).trim();storage = mySmartUpload.getRequest().getParameter(”storage“).trim();brief = mySmartUpload.getRequest().getParameter(”brief“).trim();type = mySmartUpload.getRequest().getParameter(”type“).trim();tate = mySmartUpload.getRequest().getParameter(”tate“).trim();

int count = 0;SmartFile file = mySmartUpload.getFiles().getFile(0);String fileExt = file.getFileExt();path=”/bookimg“;

InsertUpdateDelBean ib = new InsertUpdateDelBean();mySmartUpload.getRequest().getParameter(”publishing“).trim();String sql = ”insert into books([name], [author], [publishing], [number], “ [price], [storage], [brief], [type], [tate], [imgpath])” + values('“+name+”','“+author+”','“+publishing+”','“+number+”','“+price+”','“+storage+”','“+brief+”','“+type+”','“+tate+”','“+path.substring(1)+”/“+file.getFileName()+”')“;

} int flag = ib.insertANDupdateANDdel(sql);if(flag ==-1){

} count = mySmartUpload.save(path);// TODO自动生成 catch 块 e.printStackTrace();str = ”/admin/addbook.jsp“;request.setAttribute(”error“, ”1“);str = ”/admin/booklist.jsp“;request.setAttribute(”ok“, ”1“);}else{ } catch(SmartUploadException e){

} RequestDispatcher rd=request.getRequestDispatcher(str);rd.forward(request,response);publicvoid doPost(HttpServletRequest request, HttpServletResponse response)

} throws ServletException, IOException { doGet(request,response);修改已有商品的界面和主要代码如下

图4.15 修改已有商品界面图

publicvoid doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException { Validate vd = new Validate();String id = vd.getUnicode(request.getParameter(”id“));String name = vd.getUnicode(request.getParameter(”name“));String author = vd.getUnicode(request.getParameter(”author“));String publishing = vd.getUnicode(request.getParameter(”publishing“));String number = vd.getUnicode(request.getParameter(”number“));String price = vd.getUnicode(request.getParameter(”price“));String storage = vd.getUnicode(request.getParameter(”storage“));

第四章

系统的实现及功能流程

String brief = vd.getUnicode(request.getParameter(”brief“));String type = vd.getUnicode(request.getParameter(”type“));String sql =”update books set name='“+name+”',author='“+author+”',publishing='“+publishing+”',number='“+number+”',price='“+price+”',storage='“+storage+”',brief='“+brief+”',type='“+type+”' where id='“+id+”'“;

InsertUpdateDelBean ib = new InsertUpdateDelBean();ib.insertANDupdateANDdel(sql);SelectBean sb = new SelectBean();String sql2 = ”select * from books where id='“+id+”'“;String[] args2 = {”id“,”name“,”author“,”publishing“,”number“,”price“,”storage“,”brief“,”type“,”tate“,”sums“,”imgpath“};

RequestDispatcher rd=request.getRequestDispatcher(”/admin/updatebook.jsp“);rd.forward(request,response);}

ArrayList al2 = sb.select(sql2, args2);request.setAttribute(”bookinf“, al2);删除商品的界面和主要代码如下

图4.16 删除商品界面图

if(bookid!= null&&!bookid.equals(”“)){

} str = ”/admin/booklist.jsp“;sql = ”delete from books where id='“+bookid+”'“;ib.insertANDupdateANDdel(sql);4.3.5库销管理

及时了解库存和销售情况,能够使我们更好的知道商品现状,也就能够更好的制作销售和库存计划。库销管理的界面和主要代码如下:

图4.17 库销管理界面图

publicvoid doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException { Validate vd = new Validate();String kuda = vd.getUnicode(request.getParameter(”kuda“));String kuxiao = vd.getUnicode(request.getParameter(”kuxiao“));String souda = vd.getUnicode(request.getParameter(”souda“));String souxiao = vd.getUnicode(request.getParameter(”souxiao“));String sql = ”select * from books “;String[] args = {”id“,”name“,”author“,”publishing“,”number“,”price“,”storage“,”brief“,”type“,”tate“,”sums“,”imgpath“};

} if(kuda!= null&&!kuda.equals(”“)){ } if(kuxiao!= null&&!kuxiao.equals(”“)){ } if(souda!= null&&!souda.equals(”“)){ } if(souxiao!= null&&!souxiao.equals(”“)){ } SelectBean sb = new SelectBean();ArrayList al = sb.select(sql, args);request.setAttribute(”books“, al);RequestDispatcher rd=request.getRequestDispatcher(”/admin/kuxiao.jsp“);sql += ”where sums<“+souxiao;sql += ”where sums>“+souda;sql += ”where storage<“+kuxiao;sql += ”where storage>“+kuda;rd.forward(request,response);4.3.6公告管理功能

在购物网站中显示公告,有利于提高系统的质量。对公告的管理包括添加新的公告,删除和修改已添加的公告。

添加新公告的界面和主要代码如下

第四章

系统的实现及功能流程

图4.18 添加公告界面图

publicvoid doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException { Validate vd = new Validate();String name = vd.getUnicode(request.getParameter(”name“));String content = vd.getUnicode(request.getParameter(”content“));String sql =”insert into affiche(name,content)InsertUpdateDelBean ib = new InsertUpdateDelBean();int flag = ib.insertANDupdateANDdel(sql);String str = “";if(flag ==-1){

} RequestDispatcher rd=request.getRequestDispatcher(str);rd.forward(request,response);values('”+name+“','”+content+“')”;str = “/admin/addaffiche.jsp”;request.setAttribute(“error”, “1”);str = “/admin/affiche.jsp”;request.setAttribute(“ok”, “1”);}else{

}

修改已有公告的界面和主要代码如下

图4.19 修改公告界面图

publicvoid doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException { Validate vd = new Validate();String id = vd.getUnicode(request.getParameter(“id”));String name = vd.getUnicode(request.getParameter(“content”));if(name!= null&&!name.equals(“")){

} SelectBean sb = new SelectBean();String sql2 = ”select * from affiche where id='“+id+”'“;String[] args2 = {”id“,”name“,”content“,”times“};ArrayList al2 = sb.select(sql2, args2);request.setAttribute(”affiches“, al2);String sql =”update affiche set content='“+name+”' where id='“+id+”'“;InsertUpdateDelBean ib = new InsertUpdateDelBean();ib.insertANDupdateANDdel(sql);

第四章

系统的实现及功能流程

RequestDispatcher rd=request.getRequestDispatcher(”/admin/affiche_rework.jsp“);rd.forward(request,response);} 删除已有公告的界面和主要代码如下

图4.20 删除公告界面图

if(afficheid!= null&&!afficheid.equals(”“)){

} str = ”/admin/affiche.jsp“;sql = ”delete from affiche where id='“+afficheid+”'";ib.insertANDupdateANDdel(sql);4.4 数据库的设计与实现

数据库设计要遵循一些规则,一个好的数据库满足一些严格的约束和要求。尽量分离各实体对应的表,一个实体对应一个表,搞清楚该实体有哪些属性,对应有些什么字段,以及各实体之间有何种联系。实体、属性与联系是进行概念设计时要考虑的三个元素,也是一个好的数据库设计的核心。

本系统所数据库如下

1.用于存储和管理管理员信息的Admin表

表4.1 admin表

2.用于存储和管理公告信息的Affiche表

表4.2 affiche表

3.用于存储和管理商品信息的Books表

表4.3 books表

4.用于管理和存储订单信息Orders表

表4.4 orders表

5.用于存储和管理热销商品信息的Paihang表

表4.5 paihang表

6.用于存储和管理商品类别信息的Type表

表4.6 type表

7.用于存储和管理普通会员信息的Users 表

表4.7 user表

第四章

系统的实现及功能流程

第五章

系统的使用

5.1 系统环境要求

硬件环境:硬盘:10G+,内存:512M+。

软件环境:windowsXp/202_+;jdk1.5+;Tomcat5.X+;Sql2000+;IE6.0+。

5.2 系统安装

1.将整个项目发布到Tomcat中,2.将wlbm数据库附加到sql2008中.5.3 系统运行

1.启动Tomcat和sql2008服务

2.访问首页:http://localhost:8080/wlbm/qiantai/index.jsp 访问后台管理页面:http://localhost:8080/wlbm/manage/index.jsp

第六章

结束

第六章

结束

大学四年转瞬即逝,告别了初入校园青涩稚嫩的我们,四年的学习生活让我们懂得什么是成长。在这段时间里,离不开老师和同学们的帮助和指导,为我平凡的生活增添了绚丽的色彩。

感谢雷金娥老师耐心的细心指导。本次系统的开发实现让我品尝到了开发的乐趣,也找出了一些自己没有掌握的专业知识,并且得到了雷老师的耐心指导,她不会指责我们的每一个问题,相反总是毫无保留、详细而耐心的讲解每一个细节。严谨认真负责是雷老师工作的一贯风格,感谢老师的严格要求和耐心指导,让我们培养了良好的习惯,雷老师的精神在以后工作当中也将会一直影响着我。感谢老师的付出。

同时感谢和我四年朝夕相处的室友与同学们,感谢你们一直的关心和支持,在我高兴的时刻陪伴高兴,在失落时给予我支持。感谢我的校园、我的老师们,我的大学生活,因为有你们,我的生活一直很精彩。

参考文献

[1] 清宏计算机工作室.JSP编程技巧[M].机械工业出版社,202_.1 [2] BruceEckel.JSP编程思想[M].机械工业出版社,202_年10月 [3] 孙一林,彭波.JSP数据库编程实例[M].清华大学出版社,202_年8月 [4] 武延军,黄飞跃.精通JSP编程技术[M].人民邮电出版社,202_.8 [5] Karl Moss.Java Servlet开发人员指南[M].清华大学出版社,202_ [6] Steven Holzner.Java技术内幕[M].机械工业出版社,202_.1 [7] Steven Holzner.Java技术内幕[M].北京:机械工业出版社,202_.1 [8] Phil Hanna.JSP技术大全[M].北京:机械工业出版社,202_.3 [9] Karl Moss.Java Servlet开发人员指南[M].北京:清华大学出版社,202_ [10]刘洁,李颖,刘琳,刘显伟.基于JSP和JavaBean技术的网上书店设计与实现[J].现代情报,202_ [11]马新.基于JSP的网上书店的设计与实现[J].白城师范学院学报,202_ [12]郭小雪,房至一.基于JSP/Servlet的三层式网上书店的实现[J].微计算机信息,202_ [13]梁瑾,陈婷.基于JSP小型网上书店的设计[J].电脑学习,202_ [14]赵森.中文SQL Server 202_ 程序设计教程[M].冶金工业出版社, 202_.7

第五篇:电子商务网站网上购物系统设计

电子商务网站网上购物系统设计

摘要:伴随互联网的广泛应用和电子商务的迅速发展,网上购物系统渐渐走入人们的视野。本文通过对网上购物系统的基本流程及功能进行说明,提出了该系统的设计方法。因此本人结合网络购物系统的要求,对 Access 数据库管理系统、ASP 设计平台,ASP数据库技术进行了较深入的学习和应用,主要完成对网络购物系统的需求分析、功能模块划分、数据库模式分析

关键词:电子商务网站 网上购物系统 系统设计

在二十一世纪的现在,电子商务已经越来越流行,在网上购物已经是一件很平常的事情。随着互联网宽带和技术应用的成熟,以及物流和支付系统的完善,可以预见,随着时间流逝,网上购物将成为互联网普及应用的主流,必将持续影响着千家万户的生活和经济行为,并最终成为社会商业活动的重要形式。面临众多的网上购物系统,如何根据技术现状和客户的需求设计一个合理的网上购物系统显得尤为重要,建立和开发这样的电子商务平台不但可以扩大商家的规模和市场影响力,而且可以减少企业的经营成本,提高工作效率。

一.系统开发工具

系统的定位是一个电子商务站点,作为面向 Internet Web 上的应用,传统的客户端/服务端架构很明显不适应,浏览器/服务器架构是必然的选择。根据当前 Internet 现状,确定系统运行在微软公司的 Windows平台上,使用 IIS 信息服务起作为 Web 服务器,前台使用流行的网页制作工具 Dreamweaver,后台的数据库则用 Access,用 Asp 动态网页技术完成动态交互功能。

二.网上购物系统基本操作流程分析

用户在浏览网站时首先看到的就是网站首页。在首页用户可以快速浏览最新商品,了解热门商品和推荐商品,也可以搜索已知的商品查看具体信息。首页聚 I 集了大量的信息,除了商品以外,还有站内公告信息和站内新闻信息,此时用户已经对商城有了一定的了解。用户如果想要购买商品时必须注册成会员,再用户查看完商品的详细信息后,可以把自己想要购买的商品放入购物车当中,也可以随时修改、删除购物车里的商品,如果用户对购物车里的商品都很满意,也可以去收银台结账,下订单。这时相关的程序模块会将用户所提交的所有信息都记录在数据库里以便整个商城的管理人员可以核对信息并在收款后准备发货,发货成功并且用户确认收到货物时整个购物过程便结束了。在电子商城后台管理方面还需要添加、修改、删除商品,同时要对商品进行分类,包括用户信息的管理、站内公告的设置、站内新闻的发布和订单的处理等都需要电子商城的管理人员来操作。工作人员也会根据用户的订单随时调整库存、进货、发货等。

所以,由上可知,网上商城应分两个部分:第一部分是面向用户系统前台的部分包括:顾客在线注册、选择商品、进行购物、付款等操作;第二部分是商城后台系统管理部分,这部分的内容包括:产品的添加、删除、查询、订单的管理、操作员的管理、注册用户的管理等。

系统主要涉及普通用户和管理员两部分人员,普通用户通过简单的注册成为会员后可以对商品进行浏览、加入购物车、下达订单等操作,管理员用户可以对商品进行添加与维护、处理订单、管理用户、管理评论等操作。

三.网上购物系统详细设计

(一)系统前台设计

注册 当用户第一次进入购物网站时,如果想在网站上购买东西,就需要注册成网站的会员,以便将自己想要的商品放入购物车。用户注册必须填写一些基本信息,主要包括用户名、密码、真实姓名、联系电话和详细地址等。

登录管理 用户也只有登录后才可以进行购买和下订单等操作。当用户在完成注册以后购买商品的时候系统会先检查一下该用户有没有登录,若登录过了则可以直接对自己选购的商品下订单,否则返同登录窗口。登录后,可填写修改详细个人信息及收货人信息,同时可修改密码、查询、查看订单信息、修改订单(已经过管理员处理的商品除外)。

II 寻找商品 选择产品通过四种方式:通过类别自行浏览;通过浏览推荐商品选择;通过热卖排行榜选择商品 ;通过搜索条件搜索。产品放到购物车后,购物车可连续添加商品,一次性结账付款购买;

管理购物车 顾客选择完商品后可进入购物车页面,查看自己要购买 的商 品,亦可修改某一商品数量、取消购买某商品或清空整个购物车等。

用户订单模块 顾客确定购物车想买的商品后提交订单如顾客已填写收货人信息则页面实时显示订单信息。如尚未填写则显示相应表单请其填写,顾客提交订单后可随时在登录网上商城后查询该订单,并可对尚未处理的订单进行取消、修改等操作。顾客在订单被销售方确认后,选择付款方式,并付款给销售方,点击“确定已付款”,这样系统就会将默认的“未付款”更改为”已付款”,然后才可以收到货。

(二)系统后台管理设计

管理人员部分 该部分的用户有一个超级管理员以及若干个普通管理员。超级管理员拥有最高权限可访问所有订单,浏览、修改普通管理员和会员的资料;普通管理员分两种,一种是销售管理员:主要负责订单管理,可浏览、修改订单状态,也可浏览会员信息;另一种是产品管理员:主要负责界面管理,可增删商品和公告及广告等操作。

用户订单管理 订单管理主要是指管理员对用户已付款的订单做一个简单的管理查看,这样很方便杳看到是哪一位用购买了哪一件,同时显示该用户购买了几件该商品。系统管理员会根据这些信息给已付款的用户配送相应的商品。若订单的状态在一定时限后仍没有发生变化(“订单关闭”状态除外),系统自动提醒管理员,订单状态发生变化,系统自动发E—mail给顾客,(“无效订单”、“订单关闭”状态除外)。

管理商品 展示并出售商品是在线网店的真正目的,这样就需要管理员在后台可以添加、删除商品并可以对商品信息加以修改。

预警功能 为更好的使用,系统应该引入预警功能,为商品数量设置下限,达到设置的下限,管理员应提示用户进货;订单应设置处理时限,超过时限提示管理员操作。

III 用户评论管理 用户评论主要是指所有参与网购的会员都可以对本商城中的每一件商品留言评论,写下自己对于商品的看法,供以后买的会员参考。为避免商家遭受不公平待遇,管理员可以将恶意留言内容加以删除,以确保广大用户和谐的购物。

(三)数据库设计

一个结构良好的数据库可以很好地实现系统的查询和管理,并且能够极大地提高系统的运行效率,所以数据库的设计也是本系统非常重要的设计环节之一。

分析购物系统的特点可以发现2类信息存储在数据库中。一个是用户信息表、商品信息表及评论信息表——包括用户注册信息、商品信息、评论内容等。

订单表——这一类表主要是存储用户订单。

中国电子商务发展到今天经历了低潮、曲折等一系列的变化,但困难并没有抹杀大家对其的热忱。电子商务将成为 21 世纪的网络发展的主流,电子商务在未来的应用将愈来愈广。目前国内企业正纷纷加入到阿里巴巴等一系列大型电子商务网站中,通过网络进行 B2B(企业对企业)的网上交易之后,也充分认识到网络交易将成为未来商品交易的重要组成部分,在建立企业宣传网络的同时,也

逐步扩大企业自身的网络销售渠道,建立起自己的电子商务网站,完成从 B2B 到 B2C(企业到个人)同时进行网络交易的过渡,大大提高了企业生产效益。企业信息化水平已成为企业参与市场竞争的关键,网上交易作为基本的电子商务功能之一,有着强大的优势。网上交易市场是企业间电子商务所需要的电子化和网络化的商务平台。通过网上交易市场,可以改变传统贸易中的一对一或一对多的模式,变成了多对多模式,并创造众多买卖商家聚集的在线交易空间。买卖双方不仅可以寻找到更多的贸易伙伴,增加更多的商业机会,还能够享受更多的方便和标准化的商务服务,获得一个良好的商务环境

参考资料:

[1]白以恩.计算机网络基础及应用[M].哈尔滨:哈尔滨工业大学出版社,202_.IV [2]刘锦绣.电子商务的实现网上购物系统的分析与研究[期刊论文]——《中国电子商务》202_(6)

[3]王健南.ASP 数据库管理项目方案精解.航空工业出版社,202_。

[4] 许多顶 电子商务的发展现状与展望[期刊论文]-上海应用技术学院学报 202_(02)[5].辛峰 基于JSP的网上购物系统设计与实现[期刊论文]-哈尔滨职业技术学院学报 202_(1)

V

基于J2EE的网上购物配送管理系统设计
TOP