毕业设计基于JSP的网上拍卖系统的分析与设计.docx
- 文档编号:26985714
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:53
- 大小:573.34KB
毕业设计基于JSP的网上拍卖系统的分析与设计.docx
《毕业设计基于JSP的网上拍卖系统的分析与设计.docx》由会员分享,可在线阅读,更多相关《毕业设计基于JSP的网上拍卖系统的分析与设计.docx(53页珍藏版)》请在冰豆网上搜索。
毕业设计基于JSP的网上拍卖系统的分析与设计
毕业设计
基于JSP的网上拍卖系统的分析与设计
摘要
随着Internet的日益普及和电子商务的发展,网上拍卖迅速成为一种非常活跃的C2C电子商务模式。
文中详细介绍了JSP技术以及分析了基于JSP建立网上拍卖系统的技术手段,深入探讨了如何利用JavaBean技术实现与SQLServer2000数据库连接的方法。
系统采用界面与业务逻辑分离的三层结构设计,将页面显示交由JSP控制,把业务逻辑封装在JavaBean中,提高了系统的安全性、可维护性、重用性和可扩展性。
系统的注册模块应用了AJAX技术,不但实现了无刷新提交数据而且减轻了服务器的负担;通过缓存系统配置信息减轻数据库服务器的压力;对系统后台模块使用双重密码校验和验证码技术,进一步提升了系统的完全系数,使它能即使在复杂的网络环境也能以最小的系统开销正常运行。
关键词:
电子商务,C2C,JavaBean,AJAX
ABSTRACT
WiththeincreasingpopularizationofInternetandthedevelopmentofelectroniccommerce,thenetauctionquicklybecomesonekindofactiveC2Celectroniccommerce.ThearticledetailedlyintroducesaJSPtechniqueandanalyzesthetechniquemeansofbuildinganetauctionsystembasedonJSP,thendeeplydiscusseshowtouseJavaBeantechniquetobuildconnectionwithSQLServer2000databases.
Thesystemusesthreestructuraldesignswhichthecontactsurfaceandtheservicelogicseparates,thepagedemonstratedhandsoverbytheJSPcontrol,theservicelogicsealinJavaBean,enhancedthesystemsecurity,themaintainability,hasentrustedwithheavyresponsibilitythenatureandmaytheextension.
ThesystemregistrationmodulehasappliedtheAJAXtechnology,notonlyrealizedtonotrenovatessubmitsthedatamoreoverbutlightentheserverburden;Ithasreducedthedatabaseserverthroughthebuffersystemdispositioninformationthepressure;Thesystermusesdualpasswordverificationandtheconfirmationcodetechnologyinthesystembackstagemodule,hasfurtherpromotedthesystemcompletecoefficient,andenablesitworkbythesmallestsystemexpensesnormaloperationinthecomplexnetworkenvironment.
Keywords:
ElectronicCommerce,C2C,JavaBean,AJAX
附录A开题报告
附录B外文资料原文
附录C外文资料译文
附录D源程序代码
附录E系统使用说明书
第一章绪论
1.1系统应用背景与功能
电子商务(electroniccommerce)是计算机网络所带来的又一次革命,它的发展将形成新的交换体制,产生新的市场规则,冲破时间与空间的限制,加快全球市场一体化的进程,电子商务还将有力地推动信息和信息服务业的发展。
它不仅涉及电子技术和商业交易本身,而且涉及到诸如金融、税务、教育等其他社会层面,是一个与社会大环境息息相关并且具有完整结构体系的系统工程。
电子商务的发展为网上拍卖带来了勃勃生机,使得网上拍卖迅速成为一种非常活跃的电子商务模式[1]。
网上拍卖系统是一个C2C模式下的电子商务系统,提供了一个网上拍卖的市场给买方和卖方,企业可以以拍卖的方式出售自己的产品。
拥有商品展示、拍卖竞投、用户注册、网上支付、信息反馈和新商品发布几项基本功能。
使得网上的用户可以安全、便捷的使用该系统。
企业可以通过该系统观察到消费者、客户之间的买卖情况,从中获取最直接的市场消息,掌握最详细的市场动态。
它与传统的拍卖模式相比具有以下五个方面的主要优势。
(1) 降低了采购价格,借助EDI企业能够完成自动的例行采购,可减少采购过程中人力、印刷和邮寄的费用。
(2) 采用“零库存”管理方式,可大大缩短资金的周转周期。
(3) 互联网商务更有利于开拓全球市场。
(4) 实现24小时不问断营业,有利于提高营业额。
(5) 可使用多媒体手段进行促销活动,可依靠客户数据库提供全新个人服务。
随着通信技术和网络技术的飞速发展,网上拍卖的开展势在必行。
应该说网上拍卖发展的前景十分广阔,作用越来越大。
文中论述了构建网上拍卖系统的技术手段及其实现的关键方法。
本次课程设计完成的系统主要实现的功能包括用户注册、发布商品、竞拍商品、查看商品的详细信息以及管理员通过Web方式对系统的数据进行管理。
1.2系统预览
用户进入系统后的第一个界面如图1.1所示。
从图中可以看出,用户进入系统后就可以注册成为会员、查看商品信息,可以按关键字或者分类来查询商品,还可以方便快捷地通过导航栏转到系统的其他功能模块。
图1.1 用户进入系统后的页面
图1.2是用户登录系统后的页面,通过左侧的工具条可以快速切换到要进行的操作页面。
而通过顶部的页面可以进入系统帮助、退出系统、快速发布商品、购买商品等功能。
中间的页面一开始显示了用户是否有未读的新短信,如果有新信息则可以通过链接快速阅读,系统显示的“上次登录时间和IP”则可以使用户提早发现是否有人在盗用你的帐号。
在用户选择了左侧相应的功能后则出现实现此功能的页面。
1.3系统特点
本次毕业设计的拍卖系统具有以下特点。
(1) 页面模块化:
本系统在界面设计上采用了模块化处理的思想,把很多页面共有的部分集成一个模块,例如页面的头、尾,这样在开发的时候遇到这类相似的页面部分就不再需要重新编写,而只要以一句:
<%@include file=”top.jsp”%>就可以重用这部分的内容,大大提高了系统的开发效率。
图1.2 用户登录系统后的页面
(2) 三层结构设计:
本系统采用三层结构设计,将不同的复杂的数据库操作或是业务逻辑计算划分为独立的模块封装于Bean中,作为用户界面和数据库之间的中间件,所有的数据库操作由用户界面通过调用Bean来完成,提高了系统的安全性和可移植性。
(3) 部分页面采用AJAX技术:
在系统的关键性页面应用AJAX技术能够减轻服务器的负担。
(4) 管理员模块采用双重密码认证:
进一步提高系统的安全性。
(5) 面向对象设计:
在系统中将用户、商品、管理员等都封装成了类,同时每个类都有相应的操作类,从而提高了对数据库操作的安全性和程序的可扩展性。
(6) 人性化设计:
本系统的开发借鉴了淘宝网的导航样式,使系统的导航系统清晰明朗,这样不管用户位于系统的哪个位置,都能找到需要的功能。
第二章系统要解决的技术问题
2.1连接SQLServer2000
JDBC是一种用于执行SQL语句的JavaAPI,由一组用Java编程语言编写的类和接口组成。
JDBC为数据库开发人员提供了一组标准的API,使他们能够用纯JavaAPI来编写数据库应用程序[2]。
数据库厂商一般会提供一组API访问数据库,在安装完SQLServer2000后再去微软官方网站下载JDBC驱动程序,然后将下载到的三个JAR包(mssqlserver.jar;msbase.jar;msutil.jar)放入WEB应用的WEB-INF/lib/下。
再将SQLServer2000升级到sp3,便能将SQLServer2000默认的1433端口打开,这样JavaBean才可以顺利地访问数据库[3]。
连接数据库的JavaBean程序片段如下。
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:
microsoft:
sqlserver:
//localhost:
1433;DatabaseName=Vendue";
String user="sa";//连接数据库的用户名
String password="sa";//密码
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement();
总之,JDBC访问SQLServer2000的问题,关键涉及到sp3补丁(端口开放)还有用户问题,解决这两个问题之后,剩余的便是操作问题了,还有就是在远程操作的时候,要把用户组设置一下,在安全性设置里亦将身份验证更改为由SQLServer2000验证。
2.2安装jspSmartUpload文件上传组件
本系统在发布商品的时候需要上传商品的图片,基于安全方面的因素选用jspSmartUpload这个安全系数比较高的文件上传组件。
而且此组件是可免费使用的多功能的文件上传下载组件,适用于嵌入执行上传下载操作的JSP文件中。
该组件有以下几个特点。
(1) 使用简单。
在JSP文件中书写简单的JAVA代码就可以实现文件的上传。
(2) 能全程控制上传。
利用jspSmartUpload组件提供的对象及其操作方法,可以获得全部上传文件的信息(包括文件名,大小,类型,扩展名,文件数据等),方便存取。
(3) 能对上传的文件在大小、类型等方面做出限制。
如此可以滤掉不符合要求的文件。
jspSmartUpload组件可以从网站上自由下载,压缩包的名字是jspSmartUpload.zip。
下载后,用WinZip或WinRAR将其解压到Tomcat的webapps目录下。
解压后,将webapps/jspsmartupload目录下的子目录Web-inf名字改为全大写的WEB-INF,这样一改jspSmartUpload类才能使用。
因为Tomcat对文件名大小写敏感,它要求Web应用程序相关的类所在目录为WEB-INF,且必须是大写。
接着重新启动Tomcat,这样就可以在JSP文件中使用jspSmartUpload组件了[4]。
jspSmartUpload常用方法的说明:
SmartUploadsu=newSmartUpload();//新建一个SmartUpload对象。
su.initialize(pageContext);//上传初始化。
//设定上传限制。
su.setMaxFileSize(10000);//限制每个上传文件的最大长度。
su.setTotalMaxFileSize(20000);//限制总上传数据的长度。
su.setAllowedFilesList("doc,txt");//设定允许上传的文件(通过扩展名限制)
//仅允许doc,txt文件。
su.setDeniedFilesList("jsp,,");//设定禁止上传的文件(通过扩展名限制)
//禁止上传jsp扩展名和没有扩展名的文件。
su.upload();//上传文件。
intcount=su.save("/upload");//将上传文件全部保存到指定目录。
out.println(count+"个文件上传成功!
");//显示处理结果。
2.3JSP中文乱码问题的处理
在JSP开发中,经常出现乱码的问题。
乱码问题可以分为两种,一种是页面显示的中文为乱码,第二种是对于请求的表单中的中文数据为乱码。
解决页面显示的中文为乱码的方法是在JSP页面中指定编码的方式即在JSP页面的开始位置加入如下代码:
<%@pagecontentType=”text/html;charset=GB2312”%>
对于第二种乱码问题,可以通过request.setCharacterEncoding(“GB2312”)对请求进行统一的编码实现中文的正常显示[5]。
2.4 页面无刷新地提交数据
传统的Web应用采用同步交互过程,这种情况下,用户首先向HTTP服务器触发一个行为或请求的需求。
反过来,服务器执行某些任务,再向发出请求的用户返回一个HTML页面。
这是一种不连贯的用户体验,服务器在处理请求的时候,用户多数时间处于等待的状态,屏幕内容也是一片空白,即使我们只需要提交一部分数据也不得不刷新整个页面,为了解决这种状况,AJAX技术就应运而生。
AJAX(AsynchronousJavaScriptandXML)其实是多种技术的综合,包括Javascript、
XHTML和CSS、DOM、XML和XSTL、XMLHttpRequest。
其中:
使用XHTML和CSS标准化呈现,使用DOM实现动态显示和交互,使用XML和XSTL进行数据交换与处理,使用XMLHttpRequest对象进行异步数据读取,使用Javascript绑定和处理所有数据。
与传统的Web应用不同,AJAX采用异步交互过程。
AJAX在用户与服务器之间引入一个中间媒介,从而消除了网络交互过程中“处理—等待—处理—等待”的缺点。
用户的浏览器在执行任务时即装载了AJAX引擎。
AJAX引擎用JavaScript语言编写,通常藏在一个隐藏的框架中。
它负责编译用户界面及与服务器之间的交互。
AJAX引擎允许用户与应用软件之间的交互过程异步进行,独立于用户与网络服务器间的交流。
现在,可以用Javascript调用AJAX引擎来代替产生一个HTTP的用户动作,内存中的数据编辑、页面导航、数据校验这些不需要重新载入整个页面的需求可以交给AJAX来执行。
使用AJAX给开发人员、终端用户带来可见的便捷[6]。
(1) 减轻服务器的负担。
AJAX的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。
(2) 无刷新更新页面,减少用户心理和实际的等待时间。
特别的,当要读取大量的数据的时候,不用像Reload那样出现白屏的情况,AJAX使用XMLHTTP对象发送请求并得到服务器响应,在不重新载入整个页面的情况下用Javascript操作DOM最终更新页面。
所以在读取数据的过程中,用户所面对的不再是白屏,而是原来的页面内容,只有当数据接收完毕之后才更新相应部分的内容。
这种更新是瞬间的,用户几乎感觉不到。
(3) 带来更好的用户体验。
(4) 可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。
(5) 可以调用外部数据。
(6) 基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。
(7) 进一步促进页面呈现和数据的分离。
AJAX虽然可以实现无刷新更新页面内容,但是也不是什么地方都可以用,主要应用在交互较多、频繁读数据、数据分类良好的Web应用中。
第三章系统设计
3.1系统设计思想
系统设计思想决定了一个系统设计的成败也从某种角度反映了一个系统的生命力。
此系统采用了三层架构的设计思想做到了功能的独立化和模块化。
3.1.1 功能的独立化、模块化。
JSP是嵌入了Java代码的HTML,两种标记混杂在一定程序上使开发更为方便,但也存在混杂的代码容易出错,且出错时不方便使用开发工具来设置断点排查。
三层架构设计使用JavaBean专注开发逻辑层,JSP页面专注开发应用表达层,最大限度地提高了开发效率[7]。
同时系统将涉及复杂操作的不同功能独立出来,作为一个模块来设计,在需要用到特定功能的程序中,仅仅做出调用即可。
这种做法不仅避免了程序代码中一些不必要的重复更重要的是使整个系统层次结构更为清晰,方便了以后系统功能的增加,缩减了开发成本。
3.1.2 三层架构设计思想
此次设计采用“用户界面-业务处理层-数据存储层”的三层架构设计,它的工作原理如图3.1所示。
采用三层架构以后,用户界面层通过统一的接口向业务层发送请求,业务层按自己的逻辑规则将请求处理后进行数据库操作,然后将数据库返回的数据封装成类的形式返回给用户界面层。
这样用户界面层甚至可以不知道数据库的结构,它只要维护与业务层之间的接口即可。
这种方式在一定程序上增加了数据库的安全性,同时也降低了对用户界面层开发人员的要求,因为它根本不需要进行任何数据库操作。
图3.1 基于浏览器/服务器模式的三层结构系统功能模块图
3.1.3系统实现的功能
(1) 用户界面部分。
产品选购,出价(可以按各种不同的分类进行查询)。
根据关键字和类别搜索商品。
查看商品的详细信息。
用户注册、登录、密码找回、查看和修改个人信息。
发布和修改拍卖商品信息
向用户发送短信。
(2) 后台管理部分。
对现有商品的管理:
查看、删除商品。
用户管理:
修改、删除、查看、增加用户。
分类管理:
添加、修改、删除商品分类。
系统管理:
查看、删除系统配置信息。
向用户发送短信。
根据以上的功能分析可以画出系统用户界面部分的功能模块如图3.2所示,系统后台管理的模块如图3.3所示。
3.2系统层次概框图
系统分为前台和后台两个模块,前台主要用来提供给系统注册用户或者游客浏览、查看商品,并提供注册的模块,系统注册用户通过登录后还能管理自己的信息和对指定的商品参与竞拍。
图3.2 用户界面功能模块图
图3.3 系统后台管理功能模块图
后台是系统管理员对拍卖系统设置、管理用户和管理商品的地方。
系统的系统层次概框划分如图3.4所示。
图3.4 系统层次概框图
3.3系统模块详细介绍
通过上面的分析可以对系统的模块做进一步的细分。
3.3.1前台模块
(1) 用户登录模块。
已经注册的用户进入系统,必须先进行登录,并且在该页面提供了用户密码找回的功能。
(2) 用户注册模块。
首先申请用户名,这个用户名必须是惟一的(系统使用AJAX技术无刷新地提交信息进行的用户名的判断),然后填写姓名、密码、Email、用户所在地等用户信息。
填好后提交资料就会被保存到用户数据表中。
(3) 用户操作模块。
此模块需要用户登录后才能操作。
用户登录后才可以进行商品的发布和对指定的商品出价了。
同时还包括了向用户发送短消息,以及修改用户的登录密码的功能。
(4) 商品查看模块。
实现查看商品详细信息的功能,商品的详细信息包括商品的名称,介绍,发布时间,拍卖情况,查看发布此商品的用户的信用记录以及出价情况,并且用户能通过这个页面进入商品出价的模块。
(5) 查看用户信用模块。
实现查看发布商品的用户的详细信用的功能。
(6) 商品出价模块。
此模块需要用户登录后才能进入,可以根据商品的拍卖方式选择“拍卖”还是“一口价”的模式出价。
3.3.2后台模块
(1) 管理员登录模块。
为了系统的安全,进入后台管理页面要进行管理员身份的双重验证,并且使用了验证码的技术。
(2) 用户管理模块。
管理员可以添加、删除用户以及修改已经注册的用户的密码。
(3) 商品管理模块。
对已经发布的商品进行管理。
(4) 系统配置模块。
对拍卖系统的相关信息进行管理,以扩大此系统的应用范围。
(5) 商品分类管理模块。
对商品分类进行管理。
(6) 短信管理模块。
对用户发出的短信查看或者删除。
第四章数据库设计
4.1数据库需求分析
根据系统的需求,数据库中需要创建以下数据表。
(1) 用户信息表:
用于存放注册用户的资料以及用户登录情况。
(2) 管理员信息表:
用于存放管理员的信息和权限。
(3) 商品主分类信息表:
商品的主要分类。
(4) 商品子分类信息表:
商品的子分类,和子类的父类。
(5) 短消息信息表:
记录用户之间互发的短信。
(6) 用户评价信息表:
交易结束后用户的评价信息。
(7) 商品信息表:
记录用户发布的商品的信息。
(8) 用户出价信息表:
用于记录用户对相关商品的出价信息。
(9) 系统配置信息表:
用于存放系统相关配置信息。
4.2数据库逻辑设计
数据库需求分析设计完毕后,现在可以将上面的需求分析转化为数据库系统所支持的实际数据模型,也就是数据库的逻辑结构,可以作出各表的关系图[8],如图4.1所示。
网上拍卖系统数据库中各个表的设计结果如下面的表格所示。
每个表格表示在数据库中的一个表。
如表4-1所示为用户信息表,记录了系统中所有用户的详细信息。
表中uId为主键并被设置为IDENTITY(1,1),这样当插入一条记录且uId字段的数据为空(null)时,新记录的uId值将由系统自动给出,且给出的值将比表中曾经曾在的最大的uId值在1(若是一张新表,则从1开始)。
这样可以保证整个表中的uId字段在其数据类型允许的范围之内没有重复的值[9]。
图4.1 表关系图
表4-1 users用户信息表
Field
Type
Null
Key
Default
Comment
uId
bigint
-
PRI
-
用户标识
isAllowLogin
int
-
-
0
是否允许用户登录
isLoginIn
int
-
-
0
用户是否已经登录
lastLoginTime
datetime
Yes
-
-
最后一次登录时间
lastLoginIp
varchar
Yes
-
-
最后一次登录IP
msgCount
int
-
-
0
收到的新消息数
nickName
varchar
Yes
-
-
用户的昵称
password
varchar
Yes
-
-
用户密码
username
varchar
Yes
-
-
用户名
address
varchar
Yes
-
-
地址
varchar
Yes
-
-
邮箱
credit
int
-
-
0
信用等级
degrade
int
-
-
0
等级
haoping
int
-
-
0
好评
zhongping
int
-
-
0
中评
chaping
int
-
-
0
差评
如表4-2所示为管理员
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 基于 JSP 网上 拍卖 系统 分析 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)