《手机销售网站毕业设计论文.doc》由会员分享,可在线阅读,更多相关《手机销售网站毕业设计论文.doc(69页珍藏版)》请在三一办公上搜索。
1、目录摘要IAbstractII前言1第1章 概述21.1 绪论21.1.1 课题背景21.1.2 课题研究的意义21.1.3 手机销售网站的现状31.2 开发工具31.2.1 JAVA编程语言31.2.2 Tomcat服务器31.2.3 MySQL数据库31.2.4 JSP41.2.5 MyEclipse4第2章 需求分析62.1 需求确定62.1.1 普通用户需求62.1.2 会员用户需求62.1.3 管理员需求62.2 架构分析与设计72.2.1 逻辑架构72.2.2物理架构7第3章 系统总体设计83.1 系统类图83.2 数据库结构与表设计93.2.1 User表103.2.2 Prod
2、uct表103.2.3 Category表113.2.4 SalesOrder表113.2.5 SalesItem表123.3 页面设计123.3.1 前台123.3.2 后台(admin目录下)14第4章 功能实现164.1 数据库连接164.2 会员模块164.2.1 User类164.2.2 用户模块后台174.2.3 会员模块前台224.3 产品模块244.3.1 Product类JavaBean的封装244.3.2 产品类接口设计254.3.3 产品类接口的实现254.3.4 产品模块前端324.3.5 文件上传364.4 购物车模块394.4.1 购物车后台394.4.2购物车前台
3、424.5 下单模块434.5.1 订单对象实体类434.5.2 订单接口设计444.5.3 订单的接口实现454.5.4 订单前台的处理45第5章 系统运行测试485.1 代码审查485.2 会员模块测试485.3 商品购买功能测试495.4 管理员模块测试50结论54总结与体会55谢辞56参考文献57附录一 英文原文58附录二 中文译文64手机销售网站摘要电子商务形式的网上商店具有高效、快捷,信息畅通的特点,还可以很大程度上较低销售成本。本文通过手机销售网站系统的建设以实现商业零售企业的信息化管理。着重论述手机销售系统功能的实现与设计过程。本系统功能主要包括会员注册、账户管理、购物车、搜索
4、、在线支付等基本功能。此外,本系统也将实现手机销售系统的后端管理,包括手机的添加、账单的处理等功能。很大程度上减轻了维护人员的劳动强度,提高了工作效率与管理水平,具有很大的使用价值。本系统运用JAVA技术实现,采用MySQL作为数据库,开发工具使用My-Eclipse。TOMCAT作为服务器,界面使用JSP实现。本网站具有用户使用简单、界面直观等优点,还可以帮助顾客更快更准确的了解手机市场信息,以便取得物美价廉的手机。关键词:电子商务,手机购物,技术运用Cellular phone shopping websiteAbstractThe on-line store of the electro
5、nic commerce form is efficient, fast and unimpeded information,which can also lower the sale cost up. This text mainly describes to construct about the marketing system of an on-line cellular phone, provides the information-based management for the retailing business. Emphasized to discuss the reali
6、zation and the design processes of the system of the cellular phone sale system.This system function mainly includes the member register、the bank account management、shopping car、search、settle an account the basic function and so on. In addition, this system also will carry out the hypervisor managem
7、ent about the cellular phone.This system is realized through JAVA technique, my SQL as the database, applications development tool use My Eclipse,GUI use JSP. This system is simple of using for customers, the interface keeps the view etc, help customer sooner and more precise understanding cellular
8、phone market information, in order to obtain the cellular phone of the beautiful but low price.Key words :Electronic commerce,Cellular phone shopping,Tech wield前言自1996年,在美国学术界提出了“电子商务”这一概念后,在短短几年的时间里这一概念在全球范围内被广泛的接受。作为21世纪网络应用和贸易方式的代表,电子商务的应用和推广将给社会和经济带来极大的效益,并将成为全球经济的最大增长点之一。正因为电子商务有着诱人的前景和广阔的发展空间,
9、所以越来越受到人们的关注和了解。过去一提到商务,人们不是联想到在一家商场中精疲力尽地寻找自己所需的商品,就是联想到在谈判桌前,买卖双方唇枪舌剑地谈判,而如今通过万维网就可看见店面前台,人们不仅能身临其境地浏览各类产品,而且可以进行同类商品各方面的详细比较和相关的评测。同时能够购买物理产品,如汽车、电视机和录音机,也能购买数字类产品,如信息、录像、录音、数据库、软件及各类知识产品。此外还能获得各类服务,如安排旅游行程、网上医疗诊断和远程教育。电子商务正改变着企业经营的方式。既然是电子商务,Internet在这个过程中发挥的作用是显而易见的,如何构建电子商务呢?电子商务网站则是完成电子商务的平台。
10、手机作为21世纪的通信宠儿,其发展速度不亚于任何的电子设备。频繁的更新换代,给人们的选购也带来了很大的不便,电子商务正是解决这个问题的很好方案。足不出户就可以最快的掌握市场变化,满足自己的选购需求,同时商家亦可以及时把握消费方向,从而对市场变化做出相应反应。有资料显示,2006年我国仅一个购物网站全年的交易额就有超过20亿元人民币,这相当于沃尔玛在中国的10家门店2005年全年营业额。由于电子商务在我国的飞速发展,已经很少有人不知道“网上购物”这个事了。新浪、搜狐的网上商城,亚马逊、卓越、当当等网上超市,还有易趣、中商网、阿里巴巴旗下的淘宝网和8848网站等等,构成了我国网络商业门户的强势阵容
11、。电子商务市场交易量不断扩大,吸引了越来越多的消费者参与其中,网上购物行形成了与传统商业业态相抗衡的力量。第1章 概述1.1 绪论1.1.1 课题背景近年来,随着Internet的迅速崛起,互联网已日益成为手机提供信息的最佳渠道并逐步进入传统的流通领域。于是电子商务开始流行起来,越来越多的商家在网上建起商店,向消费者展示出一种新颖的购物理念。网上购物系统作为B2B(企业对企业),B2C(企业对消费者),C2C(消费者对消费者)电子商务的前端商务平台,在其商务活动全过程中起着举足轻重的作用。网上购物系统具有强大的交互功能,可使商家和用户方便的传递信息,完成电子贸易或EDI交易。这种全新的交易方式
12、实现了公司间文档与资金的无纸化交换。本文旨在研究如何建设B2C的手机销售网站系统。1.1.2 课题研究的意义企业与消费者间的电子商务B2C,是一种网上直销方式,网上销售手机缩减了中间渠道,产品一般直接源自厂商的上生产基地,不但品质有保障价格上也更实惠。同时网上销售在缩减支出方面也是传统店铺无法比拟的,由于不需要实际的店面,不仅避免了店铺租金的开销,还可省去装修、管理等方面的诸多费用,所以价格成为众多网上购机用户的首选因素。另外所不同的就是网上购物可以足不出户,各地商品任选,如此方便快捷,无时间空间限制是传统经营模式无法比拟的,如今随着人们生活质量的提高,购物方式也变得轻松自由化、个性化,这将成
13、为网上销售手机的一大优势。传统的购物和网上购物相比,有其自身的许多优势:(1)网上购物的快捷,方便是传统购物无法比较的。(2)网上购物是基于互联网的一种商务活动,互联网本身具有开放性、全球性的特点,电子商务。(3)网上购物简化了企业与企业,企业与个人之见的流通环节,最大限度地降低了流通成本,能有效的提高企业在现代商业活动中的竞争力。(4)网上购物将大部商务活动搬到网上进行,企业可以实行无纸办公节省了开支,而且环保。(5)网上购物将传统的商务流程数字化、电子化,让传统的商务流程转化为电子流,信息流,突破了时间空间的局限,大大提高了商业运作的效率,并有效降低了成本。1.1.3 手机销售网站的现状随
14、着中国互联网行业的迅速发展,上网人数增多,手机网上销售正在被消费者普遍接受,国内各大型综合门户网站上开展了手机电子商务,如新浪商城、搜狐商城,以及专门销售手机的和。归纳起来,销售手机的网站大致分为以下几类:综合门户网站购物商城、专业电子商务网站、专业销售手机网站。其中,综合类网站中购物商城60%,专门销售手机的网站25%,专门做销售的购物网站15%。1.2 开发工具1.2.1 JAVA编程语言Java是一种编程语言,被特意设计用于互联网的分布式环境。Java具有类似于C+语言的“形式和感觉”,但它要比C+语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。使用Java编写的应用程
15、序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。1.2.2 Tomcat服务器Tomcat因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat 是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。我们可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你
16、运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。1.2.3 MySQL数据库MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言。MySQL软件采用了GPL(GNU通用公共许可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小
17、型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库,这对于我们学生而言也是不错的选择。1.2.4 JSPJSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于We
18、b的应用程序的开发变得迅速和容易。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。 JSP可用一种简单易懂的等式表示为:HTML
19、+ Java=JSP。1.2.5 MyEclipseMyEclipse,是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,My Eclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。在结构上,My Eclipse的特征可以被分为7类: (1)Java EE模型 (2)WEB开发工具 (3) EJB开发工具 (4)应用程序服务器的连接器 (5)Java EE项目部署服务 (6)数据库服务 (7)My-Eclipse整合帮助 对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种
20、模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。 简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的Java EE集成开发环境,支持代码编写、配置、测试以及除错。第2章 需求分析2.1 需求确定2.1.1 普通用户需求普通用户指没注册的用户a. 普通用户可以通过系统浏览商品b. 普通用户可以通过系统搜索商品c. 普通用户可以通过系统下订单d普通用户可以注册成为系统会员2.1.2 会员用户需求a.会员可以浏览和检索商品b.会员可以下订单(享受会员价)c.会员可以浏览自己下过的订单d.会员可以管理自己的信息(1)修改密码(2)修改送货地址(3)修改联
21、系方式2.1.3 管理员需求a.管理员通过后台进行会员管理(1) 会员浏览(2) 会员历史订单浏览(3) 会员删除(4) 指定会员级别b.管理员通过后台进行产品分类的管理(1)浏览(2)添加(3)删除(4)修改c.管理员通过后台进行产品管理(1)新增产品(2)产品上柜(3)产品下柜(4)产品销售浏览(5)产品搜索(6)产品删除(7)产品修改d.管理员通过后台进行订单的管理(1)订单查询(2)修改订单状态(3)订单搜索(4)订单跟踪(5)订单提醒2.2 架构分析与设计2.2.1 逻辑架构采用三层架构:JSP+JavaBean+Database,JSP负责表现,JavaBean负责业务逻辑,Dat
22、abase负责持久保持数据。2.2.2物理架构网站服务器的硬件配置:Web服务器一台配置:2G内存,100G硬盘,酷睿2双核CPU。Database服务器一台配置:2G内存,100G硬盘,酷睿2双核CPU。对于本项目来说,两台服务器都位于同一台主机上。第3章 系统总体设计采用JSP作为开发环境,MySQL作为数据库服务器,来开发一个手机销售网站系统,实现用户注册,用户登录,用户对个人信息的修改。管理员登录,管理员后台对账户信息的添加、删除、修改,对订单的删除和修改,动态添加、修改和删除商品信息。通过购物车来保存用户所选定的商品,在最后付款时可以删除部分或全部不想要的商品。图3-1 手机销售系统
23、功能框图3.1 系统类图类图如下:图3-2 系统类Product是产品类,是产品的实体类,属性包括产品ID,产品名(name),产品描述(descr),市场价格(normalPrice),会员价格(memberPrice),上架日期(pdate),类别(catgory)。User是会员类,是会员的实体类,属性包括会员ID,会员用户名(username),会员密码(password),手机号(phone),送货地址(addr),注册日期(rdate)。Adminstrator的管理员类,是管理员的实体类,属性有管理员用户名和管理员密码。Category是类别类,是类别的实体类,包括类别id,类别
24、的名称(name),类别描述(descr),所属产品id(pid)。3.2 数据库结构与表设计图3-3 E-R图购物车类与产品类是一对多的关系;类别类与产品类是一对多的关系;订单类与产品类是多对多的关系;会员类与订单类是一对多的关系。从图3-3可以看出,一个购物车里可以有多个产品,一个品牌(类别)可以有多个产品,一个会员可以有一个或多个订单,而每个订单只会对应一个会员,否则就变成一份订单是多个会员所下了,一个订单可以有一个或多个产品,而购物车类与类别类则没有直接的联系,我们虽然可以说一个购物车可以有一个或多个品牌(类别),即一个用户买了一个品牌所有的手机。这种情况我们则转化为购物车类与产品类的
25、关系,毕竟上述这种情况是少见的。3.2.1 User表存放用户的用户名、密码、电话、地址、注册日期信息。表3-1 User表字段名字段类型说明idInt主键/自动递增usernameVarchar用户名passwordVarchar密码phoneVarchar电话addrVarchar地址RdateDatetime注册日期3.2.2 Product表存放产品的ID、产品名、描述、市场价、会员价、上柜日期信息。表3-2 Product表字段名字段类型说明idint主键/自动递增namevarchar产品名descrvarchar描述normalpricevarchar市场价memberprice
26、varchar会员价pdatedatetime上柜日期categoryIDint类别ID/引用Category表的id3.2.3 Category表存放分类的ID、分类名、描述信息。表3-3 Category表字段名字段类型说明idint主键/自动递增namevarchar分类名descrvarchar描述pidvarchar父id3.2.4 SalesOrder表存放订单的用户ID、送货地址、下单时间信息。表3-4 Sales Order表字段名字段类型说明idint主键/自动递增useridint用户idaddrvarchar送货地址odatedatetime下单时间statusint订单
27、状态/0订单未处理1处理成功2废单3.2.5 SalesItem表存放订单项的产品ID,单价,数量信息。表3-5 Sales Item表字段名字段类型说明idint主键/自动递增productidint产品idunitpricevarchar单价pcountdatetime数量orderidint订单id/引用salesorder的id3.3 页面设计3.3.1 前台前台购物流程:进入系统就进入到了系统的首页,普通用户可以浏览商品,也可以登录进入,如果不登录,选择加入购物车时会提示要登录。如果登录了系统就可以购物了,选择商品类别,选择需要的商品,然后点我要购买,然后会出现购物车,点击确认下单就
28、结束了整个流程,客户的下单信息会保存在每个会员的信息里面。a.首页(1)显示某类商品(2)根据id显示图片(3)搜索(4)注册(5)登录(6)自服务b.搜索界面search.jspc.搜索结果searchresult.jspd.注册(1)注册页面 register.jsp(2)注册成功 registerok.jsp(3)注册失败 registererr.jsp图3-4系统流程图e.登录(1)登陆页面 login.jsp(2)登录成功 loginok.jsp(3)登录失败 loginerr.jspf.自服务 selfservice.jsp(1)修改密码 changepassword.jsp(2)
29、修改成功 changepasswordok.jsp(3)修改失败changepassworderr.jsp(4)修改其他信息 changeinfo.jsp(5)修改其他信息成功 changeinfook.jsp(6)修改其他信息失败 changeinfoerr.jspg.购物(1)购物车浏览 cart.jsp(2)结账buy.jsp3.3.2 后台(admin目录下)进入后台管理后,首先要通过管理员用户名和密码登录,然后可以进行用户管理,包括用户的查询和删除;产品管理,包括产品的添加查询;类别管理,包括添加类别,删除类别,修改类别;订单管理,包括查看订单,修改订单。图3-5后台流程图a.登录页
30、面 login.jspb.首页 index.jsp(1)用户管理(2)产品管理(3)类别管理(4)订单管理c.用户管理(1)显示用户userlist.jsp(2)删除用户 userdelete.jsp(3)搜索用户 usersearch.jspd.产品管理(1)产品显示productlist.jsp(2)产品添加prodouctadd.jsp(3)产品更改productchange.jsp(4)产品删除productdelete.jsp(5)产品搜索productSearch.jspe.类别管理(1)类别显示categorylist.jsp(2)类别添加caegoryadd.jsp(3)类别删
31、除categorydelete.jsp(4)类别修改categorychange.jspf.订单管理(1)订单浏览 salesorderlist.jsp(2)订单处理salesorderdeal.jsp第4章 功能实现4.1 数据库连接数据库采用的是Mysql数据库,为了方便获取连接,写了一个DB.java的工具类首先导入mysql的jar包,然后加载驱动,获取连接。本getConn()方法返回一个Connection对象。本类中还包含了executeQuery(),getResultSet()还有关闭数据库连接的close()方法。数据库连接实现方法:1. public static Con
32、nection getConn() 2. Connection conn = null;3. try 4. /加载数驱动5. Class.forName(com.mysql.jdbc.Driver);6. /获得连接7. conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/Shopping, root,root);8. catch (ClassNotFoundException e) 9. e.printStackTrace();10. catch (SQLException e) 11. e.printStackTrac
33、e();12. 13. return conn;14. 4.2 会员模块4.2.1 User类类中包含了这些属性的get,set方法构成了javabean。1. public class User 2. private int id; /用户ID3. private String username; /用户名4. private String password; /用户密码5. private String phone; /手机号码6. private String addr; /送货地址7. private Date rdate;/ 注册日期8. public get9. return;10
34、. 11. public set12. this. = ;13. 14. 4.2.2 用户模块后台save()方法:无返回类型,无参数,使用User中的属性作为SQL语句的值进行添加用户,即注册方法。1. public void save() 2. Connection conn = DB.getConn();3. String sql = insert into user values (null, ?, ?, ?, ?, ?);4. PreparedStatement pstmt = DB.prepare(conn, sql);5. try 6. pstmt.setString(1, us
35、ername);7. pstmt.setString(2, password);8. pstmt.setString(3, phone);9. pstmt.setString(4, addr);10. pstmt.setTimestamp(5, new Timestamp(rdate.getTime();11. pstmt.executeUpdate();12. catch (SQLException e) 13. e.printStackTrace();14. finally 15. DB.close(pstmt);16. DB.close(conn);17. 18. 实现效果如下:图4-1
36、 用户信息getUsers()方法:无参数,返回List的列表,从数据库中取出表中数据,封装成User类,放进一个List集合中返回。此外,getUsers()有个重载方法,作用是为返回的用户信息进行分页显示处理,参数有3个(List user,int pageNo,int pageSize),pageNo是第几页,pageSize是每页显示多少条记录。1. public static List getUsers() 2. List users = new ArrayList();3. Connection conn = DB.getConn();4. String sql = select
37、* from user;5. Statement stmt = DB.getStatement(conn);6. ResultSet rs = DB.getResultSet(stmt, sql);7. try 8. while (rs.next() 9. User u = new User();10. u.setId(rs.getInt(id);11. u.setUsername(rs.getString(username);12. u.setPassword(rs.getString(password);13. u.setPhone(rs.getString(phone);14. u.se
38、tAddr(rs.getString(addr);15. u.setRdate(rs.getTimestamp(rdate);16. users.add(u);17. 18. catch (SQLException e) 19. e.printStackTrace();20. finally 21. DB.close(rs);22. DB.close(stmt);23. DB.close(conn);24. 25. return users;26. 实现效果如下:图4-2 用户列表check(String username,String password)方法,第一个参数是用户名,第二个参数是
39、密码,返回的是一个User对象。首先会在数据库中根据 username进行查找,如果找到,则对密码进行对比,如果密码也正确,就返回一个user对象。如果用户名不正确,则抛出UserNotFindException异常,如果密码匹配不对,则会抛出一个异常 PasswordNotCorrectExceotion异常。1. public static User check(String username, String password)2. throws UserNotFoundException, PasswordNotCorrectException 3. User u = null;4. C
40、onnection conn = DB.getConn();5. String sql = select * from user where username = + username + ;6. Statement stmt = DB.getStatement(conn);7. ResultSet rs = DB.getResultSet(stmt, sql);8. try 9. if(!rs.next() 10. throw new UserNotFoundException(用户不存在: + username);11. else 12. if(!password.equals(rs.ge
41、tString(password) 13. throw new PasswordNotCorrectException(密码不正确哦!);14. 15. u = new User();16. u.setId(rs.getInt(id);17. u.setUsername(rs.getString(username);18. u.setPassword(rs.getString(password);19. u.setPhone(rs.getString(phone);20. u.setAddr(rs.getString(addr);21. u.setRdate(rs.getTimestamp(r
42、date);22. 23. catch (SQLException e) 24. e.printStackTrace();25. finally 26. DB.close(rs);27. DB.close(stmt);28. DB.close(conn);29. 30. return u;31. 32. buy(Cart c)方法:参数是Cart对象,本方法的具体实现方法如下;33. public int buy(Cart c) 34. SalesOrder so = new SalesOrder();/创建一个SalesOrder对象35. so.setUser(this);/为SalesO
43、rder对象赋值36. so.setAddr(this.getAddr();37. so.setStatus(0);38. so.setODate(new Date();39. List salesItems = new ArrayList();40. List cartItems = c.getItems();/获取购物车的列表41. for(int i=0; icartItems.size(); i+) /遍历列表中的内容,并且加到订单中42. SalesItem si = new SalesItem();43. CartItem ci = cartItems.get(i);44. si.
44、setProduct(ci.getProduct();45. si.setCount(ci.getCount();46. si.setUnitPrice(ci.getProduct().getMemberPrice();47. salesItems.add(si);48. 49. so.setItems(salesItems);50. return OrderMgr.getInstance().add(so); /调用订单类中的方法,返回影响了多少行记录数51. 实现效果如下:图4-3 用户下单4.2.3 会员模块前台会员登录:login.jsp。 在login.jsp中,首先从页面中获得username和password,然后作为参数来调用User中的check()方法,如果没有捕获UsernameNotFindException和PasswordNotCorrectExceotion异常,则表示登录成功,同时得到一个session。核心代码如下:1. String username = request.getParameter(