基于Java的网上购物系统的设计与实现.doc

上传人:laozhun 文档编号:2387425 上传时间:2023-02-17 格式:DOC 页数:23 大小:941.50KB
返回 下载 相关 举报
基于Java的网上购物系统的设计与实现.doc_第1页
第1页 / 共23页
基于Java的网上购物系统的设计与实现.doc_第2页
第2页 / 共23页
基于Java的网上购物系统的设计与实现.doc_第3页
第3页 / 共23页
基于Java的网上购物系统的设计与实现.doc_第4页
第4页 / 共23页
基于Java的网上购物系统的设计与实现.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《基于Java的网上购物系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于Java的网上购物系统的设计与实现.doc(23页珍藏版)》请在三一办公上搜索。

1、本科毕业论文(设计)题目: 基于Java的网上购物系统设计与实现 学院: 班级: 姓名: 指导教师: 职称: 完成日期: 2013 年 06 月 02 日基于Java的网上购物系统设计与实现摘要:随着人们生活方式和消费观念的改变,网上购物凭借其简单、快捷等特点已被越来越多的人所接受。本论文主要论述的是基于Java的网上购物系统设计与实现。该系统是针对人们网上购物的需求设计与实现的。主要功能是把商品的交易流程纳入信息化管理。系统可分为前后台两部分,前台主要实现登录、注册、搜索、购物车和支付等操作;后台主要实现会员管理、商品管理、订单管理和公告管理等。整个过程以MyEclipse为开发工具,在My

2、SQL的支持下实现。系统界面采用JSP、CSS、JS、Ajax等技术,使得网上购物变得简单、安全、快捷。关键词:Java;MySQL;JSP 目 录1 绪论11.1 课题的研究意义11.2 本论文的目的、内容及作者的主要贡献12 研究现状及设计目标12.1 相近研究课题的特点及优缺点分析12.2 现行研究存在的问题及解决办法22.3 本课题要采用的相关技术23 要解决的几个关键问题33.1 研究设计中要解决的问题33.2 具体实现中采用的关键技术及复杂性分析64 系统设计及结构74.1 数据库设计74.2 系统结构图105 系统实现技术105.1 分模块详述系统各部分的实现方法105.2 程序

3、流程166 性能测试与分析176.1 测试实例(测试集)的研究与选择176.2 测试环境176.3 性能分析177 结束语17参考文献191 绪论1.1 课题的研究意义近年来,网络技术迅猛发展,人类已经进入了信息化社会。随着人们消费观念和生活方式的改变,网上购物凭借其简单、快捷的特点逐渐融入了人们的生活中适应了当今社会快节奏地生活,使人们足不出户便可以方便快捷轻松地选购自己喜欢的商品。本系统是一种具有交互功能的商业信息系统,方便商家和用户及时传递信息。为了利用Internet这个平台,实现一种网上购物的方式,其目的是方便广大网友购物,让网友足不出户就可以逛商城买商品,为此构建了基于Java的网

4、上购物系统。1.2 本论文的目的、内容及作者的主要贡献1.论文的目的、内容基于Java的网上购物系统是人们进行网上交易的重要工具,用来传递商品信息,同时也是可以管理商品和用户的系统。本系统主要针对爱好网上购物的人群,利用网络完成商品交易。本系统采用MVC设计模式,使用当前最流行的SSH框架进行开发。本系统可被简单地划分为前台和后台两部分。前台服务于用户,为其提供了浏览、注册、登录、购物车、查看订单等功能;后台服务于管理员,其职责在于对网站的维护和管理,对商品信息进行增、删、查、改等。也可以查看订单信息,以便及时地出货和退货。管理员同时还能对已注册用户信息进行管理。2.主要贡献对销售者而言,网上

5、购物系统具有很大的优势,它可以不受时间和地理条件的制约,消费者可以在任何时间、任何地点查看商品并进行购买;不需要支付使用传统的场地所产生的种种费用,例如房租、水电费、店面装潢和各种管理费用等;也不需要承担实体店经营可能带来的风险,比如遭受盗窃、人为破坏、自然灾害等。对消费者而言,网上购物系统也为其提供了大量便利,没有了“营业时间”的制约。网上支付的方式,使得足不出户也可以看尽各地商品,省去了不必要的时间和金钱,实现了消费者最小付出和最大回报的愿望。相对与传统的交易模式,网上购物模式的发展比较稳定,它降低了销售者的运行成本的同时,也便利了消费者。在购物交易中达到了双赢1。2 研究现状及设计目标2

6、.1 相近研究课题的特点及优缺点分析实体商品搬上虚拟网络已成为社会发展的必然。它充分发挥了计算机网络技术的优势,把传统的商店直接“搬”回家,利用Internet直接购买自己需要的商品或者自己需要的服务。相比于传统购物模式少了言语交流而有了更多的填单与确认过程,让人稍感不便外。总的来说,不受时间、地域限制、便捷、安全、省时省力等优点还是为买卖双方带来了不少好处,在新经济时期达到“双赢”效果的理想模式。随着计算机技术的日趋成熟,更加成熟完善的网上购物系统也将应运而生2。2.2 现行研究存在的问题及解决办法网上购物系统是比较常见而求被广泛应用的系统,本系统的开发主要是购物车功能、订单功能和支付的实现

7、,传统的购物模式,最令人烦恼的问题就是商品的进货、出货、交易以及顾客对其所购商品不满而引发的退货问题等等。现在市场上类似流行的网站或平台有很多,例如:卓越,当当,淘宝网,京东商城等。这些网站都以比较大型的数据库例如Oracle作为基础,用来储存及处理大量信息。建立在此基础之上,让卖家在处理上述问题时带来了很大的便利。网上购物相比于传统购物模式还有一个更加明显的问题就是顾客信息的安全问题,这些网站大多数在解决这个问题是采取的是登录和支付时,对用户的输入进行验证,通过正则表达式并且限制了输入次数防止恶意的SQL注入强制破解用户密码,保障顾客信息安全。2.3 本课题要采用的相关技术1.JSPJSP(

8、java server page)是由SunMicrosystems公司倡导,多家公司共同参与合作于1999年建立的一种动态技术标准。JSP是新一代的动态内容编程技术,它继承Java技术的“一次编写,随处运行”的特性,将开发人员的开发和维护与平台相分离3。由HTML,DHTML和XML等技术,组成了信息丰富动态的Web页面。它使得Web开发人员搭建网络平台变得简单快捷,建立了功能强大的Web网站。JSP可以把用户界面从内容层次中分离出来,使得Web开发人员修改整体布局的时候避开了对底层动态内容的修改。插入JSP的Java程序段可以操作当服务器上的一个JSP 页面被第一次请求执行时,服务器上的J

9、SP 引擎首先将JSP 页面文件转译成一个Java 文件,再将这个Java文件编译生成字节码文件,然后通过执行字节码文件响应客户的请求,而当这个JSP再次被请求执行时,JSP引擎将直接执行这个字节码文件来响应客户,这也是JSP比ASP 速度快的一个原因。另外,JSP又在其它许多方面做了改进,具有动态页面与静态页面相分离,能够脱离硬件平台的束缚,以及编译后运行等优点,完全克服了ASP的脚本级执行的缺点。2.MySQL前MySQL是一个开放源码的小型关联式数据库,由瑞典MySQL AB公司研发并实现4。目前MySQL已被大量地应用到Internet上的各式网站中。凭借其体积小、速度快、总体拥有成本

10、低开放源码等特点,被许多中小型网站所采纳,将其作为网站数据库5。与其他的大型数据库例如Oracle、SQL Server等相比,MySQL自有它的一些不足,比如说规模较小、功能有限等。但是这些不足并不能减少它受欢迎的程度。MySQL提供的功能完全能够满足个人或者中小型企业的使用,最重要的一点MySQL是开放源码软件,因此很大程度上降低总体运行成本。(1)支持多线程,CPU资源得到充分利用。(2)SQL算法得到优化,查询速度明显提高。(3)可以作为一个独立的程序应用在客户端和服务端环境中,也可以作为一个数据库而镶嵌到其他的软件中。(4)支持多种语言,常见的编码如中文的GB 2312、BIG5,日

11、文的Shift_JIS等。 (5)数据库连接途径有TCP/IP、ODBC和JDBC等。(6)提供用于管理、检查、优化数据库操作的管理工具。(7)支持大型的数据库。可以同时处理拥有成千上万条记录。(8)支持多种存储引擎。3 要解决的几个关键问题3.1 研究设计中要解决的问题1.界面设计界面布局设计是本系统中的一个重要的环节,一个网站如果能有一个整洁漂亮的界面,是必更容易被顾客接受。本系统采用B/S结构,即(Browse/Server),浏览器/服务器模式6。顾客只需在本机上安装一个浏览器,就能和服务机进行数据交互。不需要安装任何软件,与C/S结构相比,方便了不少。整体采用Java语言,并运用一些

12、如JSP、HTML、CSS等网页制作技术。界面友好、整洁,任何顾客都能快速地学会使用本系统。2.功能需求网上购物系统的功能模块有很多,大体可被简单地划分为两部分:前台模块和后台模块7。(1)前台模块:该模块主要供顾客使用,包括登录模块、注册模块、搜索模块、购物车模块、支付模块等。前台模块功能结构图如图3.1所示。图3.1 前台模块结构图 登录模块本系统的登录模块提供网站用户的登录功能,包括用户名和密码的输入,此模块连接数据库,点击登录按钮,验证核实之后进入系统主界面。 注册模块本系统的注册模块提供网站游客的注册功能,输入个人资料,注册成为网站会员。包括用户名、密码、确认密码、性别、年龄、电子邮

13、箱、验证码、地址和联系方式。本模块采用Ajax验证,各个输入框都有限制条件,根据用户输入有不同的提醒。输入无误后点击立即注册按钮,输入信息写入数据库,操作者可成为网站用户。 搜索模块本模块提供了两种搜索功能。包括模糊搜索和条件搜索。模糊搜索即关键字搜索,用户输入自己想要商品的关键字,点击搜索按钮,进行搜索。条件搜索可以分为价格区间搜索和商品类型搜索。 购物车模块购物车模块相当于现实中的购物车,用于暂时存放用户挑选的商品。可以显示所选商品的价格、数量、小计和总计。模块功能包括单件商品的增减及删除,小计表示同类商品的价格,总计表示所选商品的总计价格。确认无误后,点击结算,便可生成订单。 支付模块本

14、模块提供了网上购物系统的支付功能。用户接收商品,确认试用后,点击支付,给予评价,完成此次交易的最后一步。 (2)后台模块:该模块主要供管理员使用,包括商品管理模块、会员管理模块、订单管理模块、公告模块等。后台模块功能结构图如图3.2所示。图3.2 后台模块结构图 商品管理模块网上购物系统的商品管理模块主要为管理员提供商品管理功能。管理员可修改商品信息,包括价格、库存、上架以及下架。会员管理模块会员管理模块为管理员提供了管理网站会员的功能。可以分配网站会员一定权限,也可删除会员。订单管理模块此模块的功能主要为订单处理功能。管理员查看订单信息,给用户派送商品,等用户支付之后,修改订单状态,完成此次

15、交易。公告模块公告模块用来显示网站的一些活动、奖励、上架新品、特价商品以及下架通知等信息。3.数据库的设计数据库是所有信息类系统的基础核心,它把系统中出现的大量数据按照一定的规则存储起来,提供检索数据的功能8。然而往往由于庞大的数据量,让数据库设计变得异常复杂。开发网上购物系统,必然涉及到大量的商品和顾客信息的存储问题,这时候就需要有数据库的支持。一个好的数据库设计,不仅能节省多余的存储空间,还能有效的提升系统的运行效率。现在主要存在的问题是如何解决数据的结构化、数据共享性高、独立性强和管理统一。3.2 具体实现中采用的关键技术及复杂性分析1.基于B/S的结构模式B/S结构(Browser/S

16、erver,浏览器/服务器模式),是Web兴起后的一种新型的网络结构模式,Web浏览器是客户端最常见的一种的应用软件9。B/S模式解放了客户端,它将系统的核心功能集中到服务器上,缓解了客户端的压力。用户只需在客户端上只要安装一个浏览器,如IE、火狐等,服务器安装Oracle、Informix、SQL Server一类的数据库。用户通过浏览器与数据库进行数据信息的交互。B/S最大的优点在于用户只要拥有一台能上网的电脑,不需要安装任何软件,就可以在任何时间、地点操作系统。客户不用安装、维护,系统的扩展性也得到了提高。近年来,Ajax技术的发展突飞猛进,使得基于B/S结构的系统越来越多。建立在此之上

17、的程序在客户端就可以进行部分的验证功能,这样一来就减轻了服务端的负担。局部的即时刷新功能,提高了交互性能。2.数据库连接技术数据库部分的难点在于它的连接,为此采用了JDBC,即JavaDataBaseConnectivity它是Java版本的ODBC。课题研究过程中,我们可以建立一个JDBC类,用来连接数据库10。它的实现可以分为5个步骤:(1) 注册驱动,根据不同数据库注册不同的驱动 Class.forName(oracle.jdbc.driver.OracleDriver) (mysql) “com.mysql.jdbc.Drivernew oracle.jdbc.driver.Oracl

18、eDriver();(2) 通过驱动管理器获得连接Connection conn = DriverManager.getConnection(url,用户名,密码) (oracle)url = jdbc:oracle:thin:ip地址:1521:数据库名(orcl)jdbc:oracle:thin:192.168.11.188:1521:orcl(mysql) jdbc:mysql:/ip地址:3306/数据库名(database对象的名字)(3) 通过连接(Connection)生成语句(Statement)对象Statement stmt = conn.createStatement()

19、;PreparedStatement pstmt = conn.prepareStatement(sql);(4) 传递语句对象,并返回结果String sql = select * from emp;ResultSet rs = stmt.executeQuery(sql);/ResultSet rs = prepareStmt.executeQuery();int n = stmt.executeUpdate(sql);while(rs.next()(5) 释放资源 rs.close(); stmt.close(); conn.close();4 系统设计及结构4.1 数据库设计1.数据库

20、表的设计(1)用户信息表(User_id,User_name,Password,Real_name,Age,Gender,Address,Email,Is_Admin,Phone),其中User_id为关键字。该表用来存储用户id、用户名、密码、真实姓名、年龄、性别、地址、电子邮箱、是否为管理员和联系方式。表的结构如表4-1 所示。表4-1 用户信息表含义字段类型键标识用户idUser_idIntPrimarykey用户名User_nameVarchar密码PasswordVarchar真实姓名Real_nameVarchar年龄AgeInt性别GenderVarchar地址AddressVa

21、rchar邮箱EmailVarchar是否管理员Is_AdminVarcharDefault联系方式PhoneVarchar(2)商品表(Product_id,Name,Kind_id,Price,Uptime,Downtime,Count,Month_sell,Pro_picture,Describe),其中Product_id为主键,Kind_id为外键。该表用来存储商品id、商品名称、种类id、商品单价、上架时间、下架时间、库存量、月销量、商品图片和商品描述。表的结构如下表4-2所示。表4-2 商品信息表含义字段类型键标识商品idProduct_idIntPrimarykey商品名称Na

22、meVarchar种类idKind_idIntForeignkey商品单价PriceDouble上架时间UptimeDate下架时间DowntimeDate库存量CountInt月销量Month_sellInt商品图片Pro_pictureVarchar商品描述DescribeVarchar(3)商品种类表(Kind_id,Father_id,Kind_name,Kind_grade),其中Kind_id为主键。该表用来存储种类id、父种类id、种类名称和种类等级。表的结构如表4-3所示。表4-3 商品种类表含义字段类型键标识种类idKind_idIntPrimarykey父种类idFathe

23、r_idInt种类名称Kind_nameVarchar种类等级Kind_gradeInt(4)订单项表(Item_id,Order_id,Product_id,Product_count,User_id),其中Item_id为主键。该表存储订单项id、订单id、商品id、商品数量、用户id。表的结构如表4-4所示。表4-4 订单项表含义字段类型键标识订单项idItem_idIntPrimarykey订单idOrder_idInt商品idKind_idInt商品数量Product_idInt用户idUser_idInt(5) 订单表(Order_id,Pay_way,Deliver_way,Ad

24、dress,Receive_name,Postcode,Receive_phone,User_id,State,isPaid),其中Order_id是主键,User_id为外键。该表用来存储订单id、支付方式、送货方式、送货地址、收货人姓名、收货人联系方式、邮政编码、用户id 、订单状态、是否付款。表结构如表4-5所示。表4-5 订单表含义字段类型键标识订单idOrder_idIntPrimarykey支付方式Pay_wayVarchar送货方式Deliver_wayVarchar送货地址AddressVarchar收货人姓名Receive_nameVarchar收货人联系方式Receive_

25、phoneVarchar邮政编码PostcodeVarchar用户idUser_idIntForeignkey订单状态StateVarcharDefault是否付款isPaidVarcahrDefault2.数据库表的关系图根据需求分析和上述的数据库设计,我们得出数据库表的ER图,如下图4.1所示。图4.1 数据库表的关系图4.2 系统结构图结构图以模块的关系为线索,用自上而下的连线表示调用关系并注明参数传递的方向和内容。根据第三章节的功能分析,可以得出本系统总体结构图。如图4.2所示。图4.2 网上购物系统总体模块结构图5 系统实现技术5.1 分模块详述系统各部分的实现方法1.登录经过上述的

26、各项步骤之后,基本上完成了一个网上购物系统的开发。本系统的登录界面如下图所示。输入用户名和密码,单击登录按钮,与数据库的用户信息表进行验证,核实身份后进入系统主界面。登录界面如图5.1所示。图5.1 登录界面对应的部分程序代码为:Overrideprotected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException request.setCharacterEncoding(utf-8); response.setContentTyp

27、e(text/html;charset=utf-8); String username = request.getParameter(username); String password = request.getParameter(password); PrintWriter out=response.getWriter(); try User u = Userdao.getUser(username); if(u != null) if(u.getUser_password().equals(password) request.getSession().setAttribute(user,

28、 u);response.sendRedirect(/dog_heaven/jsp/main.jsp); elseout.println(alert(密码错误);window.history.go(-1); else out.println(alert(用户名不存在);window.history.go(-1); catch (SQLException e) e.printStackTrace(); 2.注册如果用户还不是本网站会员,就只能浏览商品,没有购物车功能,也不购买商品。这时就需要注册会员。本系统注册界面如下图所示。本界面采用Ajax验证,即时更新验证输入的信息。完成个人信息的填写后,

29、单击立即注册按钮,即可成为本网站会员。注册界面如图5.2所示。图5.2 注册界面3.搜索本系统搜索功能如下图所示,大体提供了两种搜索功能。第一种:关键字查找(模糊查找),会员输入关键字,单击搜索按钮进行搜索;第二种:条件查找,具体可分为价格区间查找和商品类别查找。搜索界面如图5.3所示。图5.3 搜索功能界面对应的部分程序代码为:/关键字查找Overrideprivate void keywords(HttpServletRequest request, HttpServletResponse response) throws SQLException, IOException String

30、key = request.getParameter(keywords); ArrayList dogs = (ArrayList)Dogdao.findKeyWordsDog(key); PrintWriter out = response.getWriter(); out.println(); out.println(); out.println(); out.println( ); out.println(); if (dogs.size()=0) out.println(没有符合条件的商品); out.println(如有需要,请重新搜索); return; else out.prin

31、tln(商品如下); out.println(返回首页); for (int i = 0; i dogs.size(); i+) Dog d = dogs.get(i); if(i = 0) out.println(); if(i%4=0&i!=0) out.println(); out.println(); out.println(); out.println(); out.println(+d.getDog_describe()+); out.println( ); out.println( +d.getDog_now_price()+ ); out.println(); out.prin

32、tln(); out.println(); out.println(); out.flush(); out.close(); 4.购物车购物车模块相当于现实中的购物车,用于暂时存放用户挑选的商品。顾客可以选择单件商品数量或者删除商品。小计表示同类商品的价格,总计表示所选商品的总计价格。确认无误后,点击结算,生成订单。购物车界面如图5.4所示。图5.4 购物车界面对应的部分程序代码为: private ArrayList printCartItem(PrintWriter out, ShoppingCart cart) ArrayList items = cart.getCart();CartI

33、tem item = null;out.println();out.println();out.println(图片);out.println(价格);out.println(数量);out.println(小计);out.println(操作);out.println();for (int i = 0; i items.size(); i+) item = items.get(i);out.println();out.println();out.println();out.println(+item.getPrice()+元);out.println( + item.getQuantity(

34、) + );out.println( + item.getSum() + 元);out.println(删除);out.println();out.println();out.println(总计:+ cart.getTotal() + 元);out.println(清空);out.println();out.println();out.println();out.println();return items;5.2 程序流程根据需求分析和详细设计描述,能够得出本系统的运行流程,如图5.5所示。图5.5 系统程序流程图6 性能测试与分析6.1 测试实例(测试集)的研究与选择该测试案例是以一个B

35、/S的功能点为被测对象, 该测试用例为黑盒测试用例。所谓黑盒测试就是在程序接口进行测试,它是检查功能是否按要求实现各个功能,程序是否能适当地接收输入数据并产生正确的输出信息。白盒测试与黑盒测试相反,测试根据被测程序的内部结构设计测试用例,测试者需事先了解程序的结构。 本系统的测试功能描述如下: 1.用户登录界面输入密码,进入购物网站主界面。2.选择一件商品,放入购物车。 3.更改购物车中商品数量、种类,点击结算按钮,进入订单生成界面。4.填写订单信息,点击确定,完成订单,等待卖家发货。6.2 测试环境1.硬件环境硬件配置主要包括硬件的选择。网上购物系统的硬件配置要根据用户对系统的稳定性要求、系

36、统的容量来确定。2.软件环境网上购物系统的软件配置要根据用户对系统的稳定性要求以及用户的维护水平来确定。当然,一般情况下,对微软Windows界面比较熟悉,因此都使用Windows XP操作系统。6.3 性能分析1.对系统用户进行管理。2.为了加强数据保密性,为用户设置权限。3.系统最大限度地实现了易安装性、易维护性和易操作性。4.系统运行稳定、安全可靠。7 结束语本系统是的设计与研发基于软件工程学,用来对网上商品等信息进行有效的管理。大体可分为两大功能模块,前台模块和后台模块。往下又可分为许多子模块。前台模块提供了商品展示功能和用户购物功能。后台模块提供了管理用户信息,管理商品信息,以及处理

37、订单信息等功能。本系统至上而下功能层次分明,为用户和管理员的使用提供了便利。本次毕业设计中,也体现出了自身的不足。首先,在开发网上购物系统的前期,由于对开发工具的掌握还不够全面,浪费了不少时间。其次,前期研发时缺少对本系统的总体设计,考虑的不够全面,导致在底层功能扩充时,遇到了不少困难。再次,网站制作方面的知识比较缺乏,开发软件的能力还有待提高。由于个人能力有限以及实践经验欠缺,系统基本满足了网上购物的功能需求,本系统不可避免有不足之处,如一些系统功能过于简单,所以系统的功能还算不上很完善。希望老师和同学能给予建议和指导。参考文献:1 程雯.我国网络购物现状浅析J.价格月刊,2009(09):

38、18-26.2 管晶晶.足不出户购物是怎样实现的?J.今日科苑,2007(21):20-42.3 来学伟.基于JSP的学生信息管理系统的设计J.济源职业技术学院学报,2010(11):1-160.4 耿小芬,徐忠军.Visual Basic中的数据访问技术J.中国教育信息化高职高教,2009,13:3-24.5 崔巍陈国青.数据库应用与设计M.北京:清华大学出版社,2009.6 梁小晓.基于B/S结构学生信息管理系统的设计与实现D.成都.电子科技大学:2009.7 钟彩华.学生信息管理系统的设计与实现D.江西.南昌大学:2009.8 Freeman,Eric Freemar,Bert Bates,Katly Sierra.Head First Design PatternsM.London:Cambridge University Press,2001. 9 Tiina Havana.Communication In The Software Vulnerability Reporting Process M.Jyvaskyla:Jyvaskyla Uni

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号