已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
jsp网络购物系统2010 届毕业设计(论文) java网络购物系统 系 、 部: 计算机与信息科学系 学生姓名: 毕 烽 指导教师: 彭戴文 专 业: 计算机应用 班 级: 0701 学 号: 301070101 2010 年 5 月目录目 录 2前 言3一、 java的网络功能与编程 41、1java语言简介41、2jsp技术简介 61、2、1在windows平台配置jsp运行环境 9二、网站的功能设计 102、1网站功能分析 102、2平台功能模块的设计 102、3系统流程分析 112、3、1前台购物流程图112、3、2后台购物流程图122、3、3注册功能流程图122、3、4商品搜索流程图132、3、5用户登录流程图132、3、6商品管理流程图142、3、7购物车流程图14三、数据库设计153、1顾客信息基本表153、2商品信息表153、3商品分类表153、4订单表153、5订单详细信息表163、6管理员信息表163、7数据库的连接16四、系统测试 164、1系统关键部分测试分析164、2单元测试分析174、3测试分析总结及说明174、4系统的性能分析18五、总结18六、参考文献18前言jsp网上商城系统(网上购物系统设计)开题报告课题来源及研究的目的和意义:随着互联网技术的迅速发展,网络已逐渐深入人心,更是成为继报刊、电视广播等传统媒体之后而兴起的一新传媒介质,网络宣传已成为众多宣传手段的重中之重,各种各样的网站也就应运而生:为宣传企业而制作的公司网站、可进行网上购物的电子商务网站、能及时了解到天下事的新闻网站、方便学习的教育网站,还有学校、团体、个人等等各大各小的网站,充斥着我们的视野,满足着我们的需要。网站的规划与建设,已悄然被许多人摆到了首要的迫在眉睫的位置上。当今的企业,如果仍然依靠传统的方式宣传自己企业的形象和文化、采购自己企业所需的原材料和配套部件、推销自己企业的产品,则显得十分落后而且难以适应激烈的市场竞争。因此,当代企业纷纷建立自己的网站,借助于互联网快速的信息传递加速自身的发展。一个企业网站的规划与建设,自然而然也就成了众多类型的网站规划与建设的典范;企业网站的规划与建设这一研究课题,也自然而然地成为当今乃至今后一段长时间内,企业内部和互联网上的一个相当重要的讨论对象。我这次毕业设计主要研究的就是企业网上购物系统在网络上的实现。 购物网站的规划与建设这一课题,是应用前景非常广阔的!它的解决方案不仅仅可以针对购物的网站,同样可以应用于多种多样的网站建设。 21世纪是信息化的社会,互联网实现了世界范围的网络间的互联和信息共享,并已全面介入人类生产生活的方方面面,带动着人类社会的飞速发展。企业产品的推销、企业形象的树立、企业文化的宣传,都靠着企业网站给着人们的头脑里的第一印象。网站做的好,企业自然受人们关注、受人们青睐;如果网站做的不好,企业的效益自然就会受到影响。 企业网站的规划与建设将是一个长久且受人关注的课题,人们将沿着这条研究网站建设的路越走越精彩一、java的网络功能与编程1、1 java语言简介java是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要面向internet的开发工具。自从1995年正式问世以来,java的快速发展已经让整个web世界发生了翻天覆地的变化。在早期,java比较多的用在浏览器上,插入到网页中(即是java applet程序),成为最灵活、最强大的网页多媒体的载体,但由于java虚拟机相对于个人电脑而言,有占用资源大,安全性相对较差等缺点,applet逐渐的被后起之秀flash所替代,但随着java servlet的推出,java在电子商务方面开始崭露头角,最新的jsp(java server page)技术的推出,更是让java成为基于web的应用程序的首选开发工具,目前的java技术已成为所有大型电子商务项目的必然选择。1-2 java语言在java上的应用java程序可以获取网络上结点的图象、声音、html文档及文本等资源,并可以对获得的资源进行处理。例如java程序可以每隔一定时间读取某结点提供的最新数据,并以图表的形式显示出来。在编程处理上,一般先生成一个url类型的对象,然后用java中相应的方法(method)获取该对象所代表的资源。下面列举一个java从网络上获取图象的的方法以说明。 javaapplet可以直接从网络上结点获取图象并显示出来,java提供了如下方法可以创建对应于其他结点的图象:getimage(new url(字符串)253jsp网上书店系统用例图+功能图+论文其使用格式可有两种:string url = “结点url”;image image;try image = getimage(new url(url); catch(exception e) system.out.println(“cant open the url “);或 url imgur=null; image image; try imgur=new url(“结点url “); catch (malformedurlexception e) system.out.println(“cant open the url “); image=getimage(imgur);前一种格式用“new url(url)”生成 url 对象, 并直接作为getimage的参数,后一种格式先用“new url(url)”生成一个 url对象,再传给getimage,两种格式本质上是一样的,下面是一个完整的实例(img.java): import java.applet.*;import .*; import java.awt.*; public class img extends appletimage image;public void init() string url = “/newspic/2007118/1429189039.gif”; try image = getimage(new url(url); catch(exception e)public void paint(graphics g) g.drawimage(image, 0, 0,this); 将上程序以img.java存盘, 执行javac img.java,将得到编译后生成的img.class,最后创建调用这两个java applet的html文档,并放在与img.class相同的目录,对应的html文档可如下(img.html):以上仅是java在客户端应用的一些方面,目前,java更广泛的应用是在服务器端,这是本文研究的主要话题,下文提及的servlet、jsp等技术都是java在服务器端应用的具体形式。1-3jsp的基础servlet 技术java servlet 是jsp技术的基础,jsp本身就是预先被编译成servlet,然后再运行的,而且大型的web应用程序的开发需要java servlet和jsp配合才能完成,servlet这个名称大概源于applet,现在国内的翻译方式很多,本文为了避免误会,本文直接采用servlet这个名称而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。servlet其实和传统的cgi程序和isapi、nsapi等web程序开发工具的作用是相同的,在使用java servlet以后,用户不必再使用效率低下的cgi方式,也不必使用只能在某个固定web服务器平台运行的api方式来动态生成web页面。许多web服务器都支持servlet,即使不直接支持servlet的web服务器也可以通过附加的应用服务器和模块来支持servlet。得益于java的跨平台的特性,servlet也是平台无关的,实际上,只要符合java servlet规范,servlet是完全平台无关且是web服务器无关的。由于java servlet内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此java servlet效率非常高。但java servlet也不是没有缺点,和传统的cgi、isapi、nsapi方式相同,java servlet是利用输出html语句来实现动态网页的,如果用java servlet来开发整个网站,动态部分和静态页面的整合过程简直就是一场噩梦。这就是为什么sun还要推出java server pages的原因。1-4 javabeans技术什么是javabeans?javabeans就是java的可重用组件技术。asp通过com来扩充复杂的功能,如文件上载、发送email以及将业务处理或复杂计算分离出来成为独立可重复利用的模块。jsp通过javabeans实现了同样的功能扩充。jsp对于在web应用中集成javabeans组件提供了完善的支持。这种支持不仅能缩短开发时间(可以直接利用经测试和可信任的已有组件,避免了重复开发),也为jsp应用带来了更多的可伸缩性。javabeans组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据提取等。在实际的jsp开发过程中,读者将会发现,和传统的asp或php页面相比,jsp页面将会是非常简洁的,由于javabeans开发起来简单,又可以利用java语言的强大功能,许多动态页面处理过程实际上被封装到了javabeans中。1、2jsp技术简介jsp(javaserver pages)是由sun microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。jsp技术有点类似asp技术,它是在传统的网页html文件(*.htm,*.html)中插入java程序段(scriptlet)和jsp标记(tag),从而形成jsp文件(*.jsp)。用jsp开发的web应用是跨平台的,即能在linux下运行,也能在其他操作系统上运行。jsp技术使用java编程语言编写类xml的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。jsp将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于web的应用程序的开发变得迅速和容易。web服务器在遇到访问jsp网页的请求时,首先执行其中的程序段,然后将执行结果连同jsp文件中的html代码一起返回给客户。插入的java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。jsp与java servlet一样,是在服务器端执行的,通常返回该客户端的就是一个html文本,因此客户端只要有浏览器就能浏览。jsp的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。目前较新的是jsp1.2规范,jsp2.0规范的征求意见稿也已出台。jsp页面由html代码和嵌入其中的java代码所组成。服务器在页面被客户端请求以后对这些java代码进行处理,然后将生成的html页面返回给客户端的浏览器。java servlet 是jsp的技术基础,而且大型的web应用程序的开发需要java servlet和jsp配合才能完成。jsp具备了java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。jsp技术的强势(1)一次编写,到处运行。在这一点上java比php更出色,除了系统之外,代码不用做任何更改。(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比asp/php的局限性是显而易见的。(3)强大的可伸缩性。从只有一个小的jar文件就可以运行servlet/jsp,到由多台服务器进行集群和负载均衡,到多台application进行事务处理,消息处理,一台服务器到无数台服务器,java显示了一个巨大的生命力。(4)多样化和功能强大的开发工具支持。这一点与asp很像,java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。jsp技术的弱势(1) 与asp一样,java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。(2) java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的.java文件和.class文件,以及对应的版本文件。jsp六种内置对象:request, response, out, session, application, config, pagecontext, page, exception.一.request对象:该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。二.response对象:对客户的请求做出动态的响应,向客户端发送数据。三session对象1.什么是session:session对象是一个jsp内置对象,它在第一个jsp页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。2session对象的id:当一个客户首次访问服务器上的一个jsp页面时,jsp引擎产生一个session对象,同时分配一个string类型的id号,jsp引擎同时将这个id号发送到客户端,存放在cookie中,这样session对象和客户之间就建立了一一对应的关系。当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。四aplication对象1什么是application:服务器启动后就产生了这个application对象,当客户再所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。2application对象常用方法:(1)public void setattribute(string key,object obj): 将参数object指定的对象obj添加到application对象中,并为添加的对象指定一个索引关键字。(2)public object getattribute(string key): 获取application对象中含有关键字的对象。五out对象out对象是一个输出流,用来向客户端输出数据。out对象用于各种数据的输出。六cookie1.什么是cookie:cookie是web服务器保存在用户硬盘上的一段文本。cookie允许一个web站点在用户的电脑上保存信息并且随后再取回它。举例来说,一个web站点可能会为每一个访问者产生一个唯一的id,然后以cookie文件的形式保存在每个用户的机器上。如果您使用ie浏览器访问web,您会看到所有保存在您的硬盘上的cookie。它们最常存放的地方是:c:windowscookies(在window2000中则是c:documents and settings您的用户名cookies )cookie是以“关键字key=值value“的格式来保存纪录的.2创建一个cookie对象,调用cookie对象的构造函数可以创建cookie。cookie对象的构造函数有两个字符串参数:cookie名字和cookie值。cookie c=new cookie(“username”,”john”);3 jsp中如果要将封装好的cookie对象传送到客户端,使用response的addcookie()方法。格式:response.addcookie(c)4读取保存到客户端的cookie,使用request对象的getcookies()方法,执行时将所有客户端传来的cookie对象以数组的形式排列,如果要取出符合需要的cookie对象,就需要循环比较数组内每个对象的关键字。1、2、1在windows平台下配置jsp运行环境为了使系统能够正常运行jsp和相关程序,必须先配置好能够使用jsp的web服务器。各种能使用servlet技术的web服务器中,运用得最多的是tomcat服务器,如果仅是为了用于测试程序,tomcat的配置则显得太复杂了,本文推荐使用resin服务器,resin据称是最快的servlet运行平台,不过限于单站点,对传统的一些网关支持不是很好,因此对于商业网站而言,不是最好的选择,不过如果仅是为了测试servlet,这个resin的安装可谓有点傻瓜化。resin比较新的版本是3.x,但目前实际用的2.x版本的比较多,resin可到官方站点下载:本文使用的是2.1.13版本,文件位置:如果你的电脑上已装好jdk,直接把下载的resin包解压到d:盘根目录解压后即d:resin-2.1.13为服务器的目录,把本文的源程序jspweb文件夹也放在d:盘根目录,即是d:jspweb为网站根目录,打开d:resin-2.1.13conf resin.conf(是一份xml形式的配置文件),找到doc这里改为d:jspweb,然后运行d:resin-2.1.13binhttpd.exe,在浏览器输入http:/localhost:8080/j1.jsp,看到了“我是jsp!”的字样了吧,你的servlet服务器就这样配置成功了,为了能编译servlet类,还需要做的事情是:把d:resin-2.1.13lib加入到windows的classpath的环境变量中。二、网站功能的设计2、1网站功能分析经过前期的深入调查和研究,总结出该平台需要完成的一些具体功能,分析如下:用户管理 能够完成用户基本信息录入的注册和用户基本信息的个人前台与后台管理。管理员管理 能够完成管理员对网站的商品资料(添加大类、添加小类、商品添加、商品审查)、商品交易(外理订单、发货查询)、会员管理(会员审查)、操作管理(管理员添加、管理员审查、管理员退出)的功能。搜索功能 能过电子商品的名称,电子商品的分类进行搜索。查询功能 能够通过查看购物车对所选商品进行确定、挑选,通过定单查询对支付费用进行确定。2、2平台功能模块的设计在平台功能的分析基础上,得到本平台的功能模块图如下:jsp网络购物系统平台主要包括四大功能模块,用户管理、网站布局、管理员管理、搜索等功能模块。其中用户管理模块,主要包括用户注册、用户修改、用户删除等功能;管理员管理主要包括商品资料(添加大类、添加小类、商品添加、商品审查)、商品交易、会员管理、操作管理(管理员添加、管理员审查、管理员退出)等功能;搜索主要包括:商品名称、商品类别。jsp网络购物系统平台总体模块:jsp网络商城系统平台用户管理管理员管理网站布局搜索添加小类添加大类商品添加商品审查管理员添加管理员审查管理员退出会员管理操作管理商品名称商品类别商品资料用户删除用户修改商品交易2、3系统流程分析本系统分为前台购物流程和后台订单处理流程2、3、1前台购物流程图浏览商品选择商品订购商品去购物车去收银台提交订单未注册用户已登录注册用户未登录注册用户注册2、3、2后台购物流程图用户订单订单处理订单发货订单结账订单删除注册入口必选项为空?用户名有效?密码是否一致?密码符合要求?email有效?其他信息有效?注册成功否否否否否否是否是是是是是2、3、3注册功能流程图 开始搜索输入条件搜索结果查看商品购物车下订单继续搜索是2、3、4商品搜索流程图查询用户是否存在登录入口取得用户名和密码将userid存入session中核对密码是否正确登录成功是是否否2、3、5用户登录流程图商品管理查询商品修改,删除满意否返回添加商品是否2、3、6商品管理流程图2、3、7购物车流程图购物车查看商品满意否下订单调整商品是否三、数据库设计在本系统中数据库具体表结构的设计:3、1顾客基本信息表 user顾客信息表用来记录用户的一些基本信息,其结构如下表所示:编号字段名称数据类型说明1useridint用户id(主键)2usernamenvarchar(50)用户登录名3passwordnvarchar(50)用户密码4userrealnamenvarchar(50)用户真实姓名5addressnvarchar(50)地址6emailnvarchar(50)电子邮件3、2商品信息表 product商品信息表表示商品的基本信息,如下表所示:编号字段名称数据类型说明1productidint商品编号(主键)2productnamenvarchar(50)商品名称3productpricedecimal价格4intronvarchar(50)商品介绍5categoryidint所属分类编号 3、3商品分类表 category商品分类表用来表示商品类别信息。其结构如下表所示:编号字段名称数据类型说明1categoryidint商品分类id(主键)2categorynamevarchar(50)分类名称3cnoint分类编码4gradeint分类等级5pidint与上级分类id对应3、4订单表 orders订单表保存每笔订单的基本信息。结构如下表所示:编号字段名称数据类型说明1orderidint订单号(主键)2useridint所属用户id3orderdatedatetime成交时间4addrvarchar(50)送货地址3、5订单详细信息表 orderitems订单详细信息表体现订单的细则,结构如下表所示:编号字段名称数据类型说明1orderidint所属订单号(主键)2productidint商品id(主键)3quantityint该商品的购买数量4unitcostdecimal该商品的单价3、6管理员信息表 admin与用户信息表类似,管理员信息表用来保存管理员的基本信息,如下表所示:编号字段名称数据类型说明1adminidint管理员id2loginnamenvarchar(50)管理员登录名3loginpwdnvarchar(50)管理员密码3、7数据库的连接出于安全性的考虑,我们将与数据库的连接,单独写出来并进行编译,也就是数据库连接的javabean文件,编译出来的.class文件是无法被修改的只能通过源文件进行修改,我们在jsp页面中只用直接调用改方法即可,在本系统中我们将其命名为为.faq存放在class/ckstudio/db下设其id为mdb,我们在需要对数据库进行操作的时候只需在页面上添加这样一个标签即可。连接关键代码如下:class.forname(sun.jdbc.odbc.jdbcodbcdriver);定义驱动类型 string strdirpath=application.getrealpath(request.getrequesturi(); strdirpath=strdirpath.substring(0,strdirpath.lastindexof()+;得到数据库的存放路径 string url = jdbc:odbc:driver=microsoft access driver (*.mdb);dbq=+strdirpath+db.mdb; 定义连接地址connection conn = drivermanager.getconnection(url);连接数据库 statement stmt = conn.createstatement(); resultset rs = stmt.executequery(sql);返回操作结果四、系统测试4、1 系统关键部分测试分析 系统完成之后,对各个模块的功能进行了详细的测试,输入数据和预测输出数据相比,发现了一些问题。主要是在查询过程中预计查询结果和实际结果不一致,有时候达不到目的,对数据库的操作表之间的关联考虑得不够周到,因此往往会出现一些小的错误。还有查询条件的前后数据类型不一致也是一个很常见的错误,需要靠一步步的查找解决。各个模块组装完成后,又会出现一些问题。比如在操作购物车结帐的这个流程中,由于是多次添加和修改,最后结帐,所以很容易造成数据混乱,必须对相应的数据关系理清楚,一些关键查询统计的sql语句必须反复斟酌才能放在程序中使用。 4、2 单元测试分析(1)经过上面部分的分析,我们可以得知,购物车模块是我们需要特别注意的地方,因为它涉及到了我们数据库中的大部分数据,并且是进行网上交易的最关键部分,绝对不能出现任何的差错,下面我们就针对这一模块进行用例测试:我们以用户jikou的身份登入系统,用户名是:jikou 密码是:1234然后点击定购商品:诺基亚6100 单价为3800元 弹出购物车清单:选择商品数量 2 确认 出现清单:显示商品名称 诺基亚6100 数量2 合计 7600元与我们估算的数据相符。此时选择清空购物车,继续购物,点击定购商品:摩托罗拉v70 单价为2500元选择数量3 确认,出现清单:显示商品名称 摩托罗拉v70 合计7500元 继续选择收银台结帐,出现帐单显示:显示商品名称 摩托罗拉v70 合计7500元 与我们估算的数据也相符,证明清空购物车的功能正常有效,并没有将我们第一次选购的物品计算在内,价格的计算也正确无误。下面我们来看后台数据库的数据:打开购物车表basket 我们可以看到以用户名jikou为关键字段的两条记录中,一条是我们第一次添加到购物车的商品信息,一条是第二次添加到购物车的商品信息,我们可以发现这两条记录的区别,第二条记录摩托罗拉的basket_check属性为是,subnumber属性为jikou2006151252,而第一条诺基亚6100 的basket_check属性为否,subnumber属性为空,证明该条记录没有产生订单也就是说这次无效的选购记录,并没有被计入到帐单中,和我们的预期目标一致,即该部分功能正常,测试完毕。(2)对用户注册部分进行测试用户名:jikou 密码:123456 确认:123456 e _mail:地址:河南郑州 邮编:450002 真实性名:付立夫提交以后,弹出提示信息:该用户已存在,用户名
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电商解决方案
- 包覆贵金属金属材料行业相关投资计划提议
- 纤维增强行业相关投资计划提议范本
- 如何规划店铺运营
- 大专工商企业三年规划
- 食物中毒事件演练报告
- 五年级上册第七单元
- 第七章 循证医学课件
- 第二章 3认知取向课件
- 2025新课改-高中物理-选修第1册(21讲)08 B简谐运动的回复力和能量 中档版含答案
- 2023年8月26日事业单位联考C类《职业能力倾向测验》试题
- 2023年天津公务员已出天津公务员考试真题
- 施工现场临水施工方案
- 2022年公务员多省联考《申论》真题(四川县乡卷)及答案解析
- 艾滋病职业防护培训
- 2025年高考数学专项题型点拨训练之初等数论
- 上海市浦东新区2024-2025学年六年级上学期11月期中数学试题(无答案)
- 2024年全国消防宣传月《全民消防、生命至上》专题讲座
- 通信技术工程师招聘笔试题与参考答案(某世界500强集团)2024年
- 2024至2030年中国节流孔板组数据监测研究报告
- 2024年第九届“学宪法、讲宪法”活动知识竞赛测试题库及答案
评论
0/150
提交评论