《基于BS模式的手机数码类小型网上购物系统的设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《基于BS模式的手机数码类小型网上购物系统的设计与实现毕业论文.doc(43页珍藏版)》请在三一办公上搜索。
1、郑州科技学院本科毕业设计(论文)题 目:基于B/S模式的手机数码类小型网上购物 系统的设计与实现 姓 名: 专业班级: 08计算机科学与技术(3)班 学 号: 200815076 院 系: 信息工程学院 指导教师(职称): 完成时间: 2012年5月16日 基于B/S模式的手机数码类小型网上购物系统的设计与实现摘 要21世纪以来,人类经济高速发展,人们的生活发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。为了让消费者网上购物过程变得简单、方便、安全、快捷,网上商城购物成了一种新型而热门的购物方式。本网上购物商城系统就是为了满足人们网上购物的需求设计的,采用Struts
2、1.0在网络上架构一个动态的电子商务网站。它是在WindowsXP下,以MySQL 为数据库开发平台,Tomcat网络信息服务作为应用服务器,采用Struts1.0,JSP(Java Server Pages)技术开发的网上购物系统。它使用浏览器与服务器交互的方式,使顾客能够通过本网站查看最热销商品,特价商品,查看自己感兴趣的商品。系统会根据订单的信息满足顾客的需要,达到用户足不出户就能够购买到所需要的商品的目的,让购物变得轻松、快捷、方便。关键词:网上购物商城;B/S结构 BASED ON B/S MODEL OF TYEPES OF DIGITAL MOBILE PHONE SMALL O
3、NLINE HOPPING SYSTEM DESIGN AND IMPLEMENTATIONABSTRACT21st century, the high-speed economic development, peoples life has the great changes, especially the application of computer and spread to all fields of economic and social life. In order to let the consumer online shopping process simple, conve
4、nient and safe, quick, online shopping mall became a kind of new type and popular shopping way. This online shopping mall system are in order to meet the needs of people online shopping of design, the Struts1.0 on the network architecture a dynamic e-commerce sites. It is in the WindowsXP, with MySQ
5、L database development platform for, Tomcat network information service as the application Server, the Struts1.0, JSP (Java Server Pages) technology development of online shopping system. It use the browser and server interaction way, so that customers can through this website to check the hottest s
6、elling goods, specials, check the goods they are interested in. The system will according to order information satisfy the needs of our customers, to the user never leave home to be able to buy the needed goods goal, let shopping easy, fast and convenient. KEY WORDS:online shopping; B/S structure目录摘
7、 要IABSTRACTII1.前言12.J2EE及相关技术22.1 J2EE介绍22.2 JAVA语言的使用22.3 系统中STRUTS1技术使用33.系统可行性及需求分析53.1 本系统可行性研究53.1.1 市场可行性分析53.1.2 技术可行性53.2 本系统的需求分析54.总体设计74.1 系统的配置74.1.1 运行环境74.2 业务流程图74.3 总体设计过程84.4 数据库设计94.4.1 Mysql数据库介绍94.2.2 数据库的需求分析104.2.3 数据字典115.系统模块设计145.1 公共类的设计145.1.1 数据库连接类145.1.2 获取当前时间类145.1.3
8、字符串自动处理类155.2 用户模块165.2.1 实现用户模块的界面165.2.2 用户登陆模块的实现165.2.3 用户注册模块的实现175.3 购物车185.3.1 实现购物车的Bean185.3.2 实现购物车的界面195.4 管理员模块225.4.1实现管理员信息的BEAN225.4.2 管理员登陆界面225.4.3 管理员修改密码功能的实现245.5 商品信息管理245.5.1 实现商品信息的Bean245.5.2 实现商品信息管理的界面255.6 公告信息模块的实现285.6.1 实现公告信息bean285.6.2 实现公告信息的界面295.6.3 实现公告信息添加的界面306.
9、系统调试与测试316.1 程序调试316.2 程序的测试316.2.1 测试的重要性及目的316.2.2 测试的步骤33结束语36致谢38参考文献391.前言网上商城也叫电子商务,就是在网上开展商务活动。它是以电子交易为手段,完成金融、物品、服务、信息等价值的交换,是快速而有效地进行各种商务活动的最新方法。电子商务的出现,改变了传统的一手交钱一手交货的模式,使得商业模式发生了很大的变化。随着信息技术的不断发展和Internet互联网技术的日益普及,人们越来越意识到电子商务对国家经济、企业管理和个人生活所带来的巨大影响。它满足企业、商人和消费者对提高产品和服务的质量、加快服务速度、降低费用等方面
10、的需求,也帮助企业和个人通过网络查询和信息检索为企业下一步的发展方向提供支持。借助电子商务,企业和个人,企业和企业可以通过网络进行交易和全过程的服务。电子商务代表着未来贸易方式的发展方向,其应用和推广将给社会和经济带来极大的效益。具有强大生命力的现代电子交易手段己越来越被人们所认识,发达国家在这方面有很多年的发展历史,发展中国家也正在加紧制定总体发展战略,大力促进电子商务在国民经济各个领域的应用,力争在越来越激烈的国际竞争中占据有利的地位。因此,对于网上购物技术的研究和实现,以及搭建一个实用的网上商店是很重要的1。2.J2EE及相关技术2.1 J2EE介绍随着JAVA语言大量应用于企业级系统开
11、发以来,已渐渐形成了一套成熟的基于J2EE开发框架,目前J2EE框架已不单单是一门技术的应用,而是一种开发体系它涵盖了软件开发的各个层面,总的来说可大概分为以下技术范畴:Enterprise JavaBean,Java Servlet,JavaServer Pages ,Java Message Service (JMS,Java消息服务) ,Java Naming and Directory Interface (JNDI,Java名字与目录接口),XML,J2EE Connector Architecture (J2EE连接器架构),JavaMail,JDBC。在JAVAWEB开发中,对于
12、开发人员来说MVC概念是要掌握的基本概念,MVC即是模型和视图的控制转换,MVC有多种实现方式,在JAVAWEB开发中使用的就是SERVLET、JSP技术,Servlet是基于Java语言创建的,而Java语言则内建了多线程支持,这一点大大提高了动态Web应用的性能。当实现一个一般的服务时,你能使用或拓展GenericServlet类,该类提供了Java Servlet API,HttpServlet类提供了一些方法,如doGet及doPost,用来处理特定的http服务。2.2 JAVA语言的使用面向对象编程(OOP)具有多方面的吸引力。对管理人员,它实现了更快和更廉价的开发与维护过程。对分
13、析与设计人员,建模处理变得更加简单,能生成清晰、易于维护的设计方案。对程序员,对象模型显得如此高雅和浅显。此外,面向对象工具以及库的巨大威力使编程成为一项更使人愉悦的任务。每个人都可从中获益,至少表面如此。如果说它有缺点,那就是掌握它需付出的代价。思考对象的时候,需要采用形象思维,而不是程序化的思维。与程序化设计相比,对象的设计过程更具挑战性特别是在尝试创建可重复使用(可再生)的对象时。过去,那些初涉面向对象编程领域的人都必须进行一项令人痛苦的选择。事实上,很难很好地设计出对象从而很难设计好任何东西。因此,只有数量相当少的“专家”能设计出最好的对象,然后让其他人享用。对于成功的OOP语言,它们
14、不仅集成了这种语言的语法以及一个编译程序(编译器),而且还有一个成功的开发环境,其中包含设计优良、易于使用的库。所以,大多数程序员的首要任务就是用现有的对象解决自己的应用问题。2.3 系统中STRUTS1技术使用随着Internet技术的广泛使用,Web技术已经广泛应用于Internet上,但早期的Web应用全部是静态的HTML页面,用于将一些文本信息呈现给浏览者,但这些信息是固定写在HTML页面里的,该页面不具备与用户交互的能力,没有动态显示的功能。Struts 1是全世界第一个发布的MVC框架,它由Craig McClanahan在2001年发布,该框架一经推出,就得到了世界上Java W
15、eb开发者的拥护,经过长达6年时间的锤炼,Struts 1框架更加成熟、稳定,性能也有了很好的保证。因此,到目前为止,Struts 1依然是世界上使用最广泛的MVC框架。Struts对Model,View和Controller都提供了对应的组件。(1)Model部分由JavaBean组成,ActionForm用于封装用户的请求参数,封装成ActionForm对象,该对象被ActionServlet转发给Action,Action根据ActionForm里面的请求参数处理用户的请求。JavaBean则封装了底层的业务逻辑,包括数据库访问等。 (2)View部分该部分采用JSP实现。Struts提
16、供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与Model的有效交互,并增加了现实功能。对应上图的JSP部分。(3) Contorller组件Controller组件有两个部分组成系统核心控制器,业务逻辑控制器。 系统核心控制器,对应上图的ActionServlet。该控制器由Struts框架提供,继承HttpServlet类,因此可以配置成标注的Servlet。该控制器负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用Model来完成处理。对应Action部分。3.系统可行性及需求分
17、析3.1 本系统可行性研究本系统采用MVC设计模式,使用符合Struts1.0的设计标准,在前台用JSP进行页面开发和管理用户界面,提示信息完善,界面友好,具有较强的亲和力,后台采用MYSQL数据开发和管理数据库,对数据库操作采用事务处理机制。本系统的开发环境是使用现在非常流行的开源开发工具MyEclipse和Tomcat服务器。本系统在技术方面可行,系统的目标确定后,可以从市场可行性、经济可行性、技术可行性等几个方面对能否实现新系统目标进行可行性分析。3.1.1 市场可行性分析项目是否可以实施,主要应该看该项目是否有潜在市场,以及市场的变化对项目的开发结果会有哪些影响。本系统是购物系统,是人
18、们日常生活消费的工具。只要针对大众对物品的喜好,使系统功能齐全,操作简单,界面美观大方,就一定会有市场潜力。3.1.2 技术可行性本系统采用MVC设计模式,使用符合Struts1.0 的设计标准,在前台用JSP进行页面开发和管理用户界面,提示信息完善,界面友好,具有较强的亲和力,后台采用MySQL数据开发和管理数据库,对数据库操作采用事务处理机制。本系统的开发环境是使用现在非常流行的开源开发工具MyEclipse和Tomcat服务器。使用很灵活以及他们当前的广泛实际应用,充分说明本系统在技术方面可行。3.2 本系统的需求分析需求分析是一组活动的总称。需求分析的任务是定义待开发的软件的功能、性能
19、等指标。首先要了解用户的相关业务,结合用户的需求,与用户进行交流协商。也许用户列举了查询、订购、下订单、用户管理和订单管理,也许还有自己有特色的东西。业务流程是一种重要的信息,比如用户购买商品这个流程,它需要经历商品查询、加入购物车、查询购物车、结算中心(包括填写订购人详细信息、送货方式和支付方式)、订单确认、送货到收货等一系列活动,然后将了解到的用户活动加以整理并按照这些活动所固有的次序形成业务流程。4.总体设计4.1 系统的配置网上商城系统是基于B/S模式的网络系统,使用Myeclipse作为项目的开发环境,Mysql作为系统使用的数据库,使用Tomcate作为系统运行的服务器。只需要一台
20、可运行的个人电脑,要求能够安装windows系统,并且能够安装JAVA虚拟机、Tomca服务器、Mysql数据库。就可以完成学风建设评估系统的配置。在运行系统时先将数据导入到Mysql数据库中,将项目文件放入Tomcate服务器中,运行Tomcat务器便可以在本机上模拟运行网上商城系统。4.1.1 运行环境其硬件需求如表4-1所示:表4-1系统硬件配置处理器双核1.0HZ及以上配置内存500M及以上显卡集成显卡即可硬盘10G及以上软件要示如下表4-2所示:表4-2系统软件配置操作系统WindowsXPJAVA虚拟机JDK1.6版本服务器Tomcate74.2 业务流程图业务流程是根据市场需求与
21、客户要求调整企业流程,包括设计、分析和优化的过程。本系统的业务流程图如图4-1所示。图4-1 业务流程图4.3 总体设计过程总体设计的任务是从整体上对网站精心策划并确定网站的设计目标,在技术上合理规划设计指标,收集、整理、编辑网站内容。本系统分为前台和后台,这种分法也是当前网站系统惯用的做法。前台供给客户使用,用于展现信息和完成与客户的交互性处理,前台包括八大模块:首页、销售排行、新品上架、特价商品、查看订单、购物车、会员修改、用户登陆;后台供给网站的管理者使用,用于管理网站内容。该后台系统包括八大基本模块:返回首页、商品查询、会员设置、修改密码、订单设置、公告设置、友情设置、安全退出。前台文
22、件结构图如图4-2所示。前台系统首页用户登录销售排行新品上架特价商品查看订单购物车会员修改图4-2 前台文件结构图后台文件结构图如图4-3所示:后台系统返回首页商品查询会员设置修改密码订单设置公告设置友情设置安全退出图4-3 后台文件结构图4.4 数据库设计4.4.1 Mysql数据库介绍MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL的SQ
23、L“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言。MySQL软件采用了GPL(GNU通用公共许可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库2。4.2.2 数据库的需求分析数据项如下:商品大类别表(tb_bigtype):商品大类别编号,商品大类别名称,商品上架时间。商品小类别表(tb_smalltype):商品小类别编号,所属大类别编号,商品小类别名称,商品上架时间。商品表(tb_goods):商品编号,所属大类别编号,所属小类别编号,商品名称,商品来源地,商品介绍,上架时间,现在价格
24、,优惠价格,商品数量,商品图片,商品类型。订单表(tb_order):订单编号,订单号,订购人姓名,真实姓名,订单接收地,订单接收人电话,支付方式,邮寄方式,需求方式,商品类型,订购时间。订单详细表(tb_orderdetail):订单项目编号,订单号,商品编号,商品价格,商品数量。用户表(tb_member):用户编号,用户帐号,用户密码,用户姓名,用户职业,用户Email,密码提示问题,密码答案。管理员表(tb_manager):管理员编号,管理员帐号,管理员密码,真实姓名,权限级别。商城公告(tb_affiche):公告编号,公告题目,公告内容,公告时间。友情链接(tb_link):链接
25、编号,链接名称,链接地址。4.2.3 数据字典数据字典的作用是在软件分析和设计的过程中给人提供关于数据的描述信息。它主要是对数据流图中的数据流、处理逻辑、外部实体、数据存储和数据项等方面进行具体的定义。数据流程图配以数据字典,就可以从图形和文字两个方面对系统的逻辑模型进行完整的描述。本系统数据项如下所示。表4-1 用户表编号名称别名类型长度1id用户编号Integer112NAME 用户帐号Varchar50字节3PASSWORD用户密码Varchar50字节4reallyName用户姓名Varchar10字节5age用户年龄Integer116proferssion 用户职业Varchar5
26、0字节7email用户EmailVarchar50字节8question密码提示问题Varchar50字节9result 密码答案Varchar50字节表4-2 管理员表编号名称别名类型长度1id管理员编号Integer112account管理员帐号Varchar50字节3PASSWORD管理员密码Varchar50字节4NAME真实姓名Varchar50字节5SIGN 权限级别BIT2表4-3 商品大类别表编号名称别名类型长度1id商品大类别编号Integer112bigName大类别商品名称Varchar50字节3createtime商品加入时间TIMESTAMP表4-4 商品小类别表编号
27、名称别名类型长度1id商品小类别编号Integer112bigId所属大类别编号Integer113smallName小类别商品名称Varchar50字节4createtime 上架时间TIMESTAMP表4-5 商品表编号名称别名类型长度1id商品编号Integer112bigId 所属大类别编号Integer113smallId所属小类别编号Integer114goodsName商品名称Varchar50字节5goodsFrom商品来源地Varchar50字节6introduce商品介绍TEXT7createtime上架时间TIMESTAMP8nowPrice现在价格DOUBLE329fr
28、eePrice优惠价格DOUBLE3210number商品数量Integer1111pirture商品图片Integer1112mark 商品类型BIT表4-6 订单表编号名称别名类型长度1id订单编号Integer112number订单号Varchar50字节3NAME订购人姓名Varchar50字节4reallyName真实姓名Varchar50字节5address 订单接收地Integer50字节6tel订单接收人电话Varchar50字节7setMoney支付方式Varchar50字节8post邮寄方式Varchar50字节9bz需求方式TEXT10SIGN商品类型BIT表4-7订单详
29、细表编号名称别名类型长度1id订单项目编号Integer112orderNumber 订单号Varchar50字节3goodsId商品编号Integer114price商品价格Double325number商品数量Integer115.系统模块设计5.1 公共类的设计公共类包括数据库连接类,获取当前时间类以及字符串自动处理类。5.1.1 数据库连接类代码如下:package com.wy.tool;import java.sql.*;public class JDBConnection private String dbDriver = com.mysql.jdbc.Driver; /数据库
30、的驱动PrivateStringurl= jdbc:mysql:/127.0.0.1:3306/db_shopping; /URL地址public Connection connection = null;public JDBConnection() try Class.forName(dbDriver).newInstance();/加载数据库驱动connection = DriverManager.getConnection(url, root, ); / 加载数据库 catch (Exception ex) System.out.println(数据库加载失败); 5.1.2 获取当前时
31、间类代码如下:package com.wy.tool;import java.util.Date;import java.text.DateFormat;public class CountTime public String currentlyTime() Date date = new Date();DateFormat dateFormat=DateFormat.getDateInstance(DateFormat.FULL);return dateFormat.format(date);5.1.3 字符串自动处理类代码如下:package com.wy.tool;import java
32、.io.UnsupportedEncodingException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.RequestProcessor;public class SelfRequestProcessor extends RequestProcessor public SelfRequestProcessor() protected boolean processPreprocess(Ht
33、tpServletRequest request,HttpServletResponse response) super.processPreprocess(request, response);try request.setCharacterEncoding(gb2312); catch (UnsupportedEncodingException ex) ex.printStackTrace();return true;对于所有要用到数据库的servelt类,都需要先接连到数据库。因为对于数据库的操作比较频繁,为了节省资源,只需要在要用到数据库的servelt类前加入以下代码:private
34、 Connection connection = null; /定义连接的对象private PreparedStatement ps = null; /定义预准备的对象private JDBConnection jdbc = null; /定义数据库连接对象public AfficheDao() jdbc = new JDBConnection();connection = jdbc.connection; /利用构造方法取得数据库连接5.2 用户模块用户模块主要包括用户登陆模块、用户注册模块、找回密码模块。5.2.1 实现用户模块的界面在实现用户模块的界面主要包括用户登陆、用户注册、找回密
35、码等功能。其界面如下图5-1所示:图5-1 用户登陆界面5.2.2 用户登陆模块的实现(1) 实现用户信息的bean用户信息所包含的数据是用户的详细信息,它包含用户的所有信息。用户信息类MemberForm的定义:package com.wy.domain;import org.apache.struts.action.ActionForm;/会员表的beanpublic class MemberForm extends ActionForm private Integer age = 1; / 年龄private String email = ; / 电子邮件private Integer
36、id = 1; / 数据库流水号private String name = ; / 会员名称private String password = ; / 会员密码private String profession = ; / 会员职业private String question = ; / 找回密码的问题private String reallyName = ; / 真实姓名private String result = ; / 找回密码的答案(2) 实现用户登陆代码如下:public ActionForward checkMember(ActionMapping mapping,Action
37、Form form,HttpServletRequest request,HttpServletResponse response) String name = request.getParameter(name);MemberForm memberForm = dao.selectMemberForm(name);if (memberForm=null|memberForm.equals() request.setAttribute(result, 不存在此会员,请重新登录!);elseif (!memberForm.getPassword().equals(request.getParam
38、eter(password).trim() request.setAttribute(result, 密码错误,请重新登录!); else request.setAttribute(memberForm, memberForm);return mapping.findForward(checkMember);5.2.3 用户注册模块的实现输入:用户名称、用户密码、密码确认、真实姓名、年龄、职业、Email、问题、答案。输出:添加成功,提示成功信息,不成功则显示错误的信息页面。其界面如下图5-2所示:图5-2 会员注册5.3 购物车购物车的主要表现为:用户信息和权限相关功能的实现方法,就是选购的
39、物品要一件一件地放进购物车,然后生成订单,继而生成订单进行查询和修改,最后还要进行订单处理。购物车的工作原理,我们是把用户所选购的所有商品的信息全部记录在用户的Session中,用户所选购的商品信息我们是把它封装处理到一个Bean中后才保存到Session中的。5.3.1 实现购物车的Bean购物车所包含的数据是一个用户的一次购买记录,因此在这一次购买中,我们考虑到用户可能会选择多种商品,而每种商品又可能会选择任意多个数目,所以我们的购物车类SellGoodsForm应该包含多个购物项。购物车类SellGoodsForm的定义:package com.wy.domain;/购货商品的beanp
40、ublic class SellGoodsForm public int ID; /商品ID public float price; /价格 public int number; /数量public int getID() return ID;public void setID(int iD) ID = iD;public float getPrice() return price;public void setPrice(float price) this.price = price;public int getNumber() return number;public void setNu
41、mber(int number) this.number = number;5.3.2 实现购物车的界面购物车页面主要是用于显示用户所选择的商品信息以及每种商品的数量,单价,最后还要包括所选择商品的总价钱.在购物车页面中,主要包括两部分:购物清单和对购物车操作的功能按钮。其中购物清单列出了购物车中所有商品的情况,包括每种商品的单价,数量和总价钱。用户还可以在这里修改每种商品的数量。对购物车的操作按钮主要就是“结算中心”。关于购物车的操作,其中包括,向购物车增加商品,删除商品和修改购物车中商品数量。而要特别注意的是检查商品金额的计算是否正确,如下图5-3所示:图5-3 购物商品单击“继续购物”按
42、钮,可以返回商品展示页面,供用户继续浏览并添加商品,添加多个商品后的页面这时重点看的是金额是否正确。单击”去收银台结帐”按钮,可以得到当前购物的金额,并填写收货人姓名,收货人电话,收货人详细地址。单击”清空购物车”按钮,可以将购物车中物品全部清除。在“修改数量”中可修改商品的数量,每次修改完后,都要单击相应的“刷新”按钮,同时合计金额要根据商品数量的变化随之发生变化。订单列表页面如下图5-4所示:图5-4 订单列表页面显示所有订单项目代码:Public ActionForward selectOrder(ActionMapping mapping, ActionForm form, HttpS
43、ervletRequest request,HttpServletResponse response) Integer sign = null; if (request.getParameter(sign) != null) sign = Integer.valueOf(request.getParameter(sign); List list = order.selectOrderSign(sign); int pageNumber = list.size(); /计算出有多少条记录 int maxPage = pageNumber; /计算有多少页数 String number = request.getParameter(i); if (maxPage % 6 = 0) maxPage = maxPage / 6; else maxPage = maxPage / 6 + 1; if (number = null) number = 0; request.setAttribute(number, String.valueOf(numb