基于Eclipse平台的跳蚤市场设计与实现.docx
《基于Eclipse平台的跳蚤市场设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Eclipse平台的跳蚤市场设计与实现.docx(46页珍藏版)》请在冰点文库上搜索。
![基于Eclipse平台的跳蚤市场设计与实现.docx](https://file1.bingdoc.com/fileroot1/2023-7/10/d41ad459-db6b-4b52-ae25-5a8a15eefd5b/d41ad459-db6b-4b52-ae25-5a8a15eefd5b1.gif)
基于Eclipse平台的跳蚤市场设计与实现
基于Eclipse平台的跳蚤市场设计与实现
中南民族大学
毕业论文(设计)
学院:
计算机科学学院
专业:
网络工程专业年级:
2009
题目:
基于Eclipse平台的跳蚤市场设计与实现
学生姓名:
学号:
指导教师姓名:
职称:
讲师
2013年5月
中南民族大学本科毕业论文(设计)原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
年月日
基于Eclipse平台的跳蚤市场设计与实现
摘要:
随着WEB的迅猛发展,电子商务网站在最近几年也越来越热,实体商店已经无法符合所有人的要求。
越来越多的人选择方便,快捷的网上购物市场。
随着电子商务时代的到来,实体二手交易显得那么的不效率和费时费力。
为了解决这个问题,有必要开发出网上校园跳蚤市场,为我校学生提供网上交易平台。
本文设计了一个基于Eclipse平台的校园跳蚤市场,前台使用JSP技术,后台使用Java语言,整合了Struts框架,使用MySQL数据库。
本文主要说明了系统的结构与功能、系统功能模块的设计与实现,并针对开发过程中遇到的技术难点给出了解决方案。
通过本系统不仅能像传统校园跳蚤市场一样处理毕业生的多余物品,而且在平时学生们有任何闲置的东西或有任何需求都可以放到网上跳蚤市场,不限时间地点,非常方便。
关键词:
Eclipse平台;跳蚤市场;JSP技术
DesignandImplementationofFleaMarketBasedonEclipsePlatform
Abstract:
WiththerapiddevelopmentoftheWeb,e-commercesitesinrecentyearsmoreandmoreheat,physicalstoreshavebeenunabletomeetthedemandsofallpeople.Moreandmorepeoplechooseconvenient,faston-lineshoppingmarket.Withthearrivaloftheeraofe-commerce,theentity'ssecondarytradingseemedsonotefficiencyandtime-consuming.Tosolvethisproblem,itisnecessarytodeveloponlinecampusfleamarket,onlinetradingplatformforourstudents.DesignedacampusfleamarketbasedontheEclipseplatform,theforegroundusingJSPtechnology,thebackgroundusingtheJavalanguage,integratedStrutsframework,usingaMySQLdatabase.Thispapermainlydescribesthestructureandfunctionofthesystem,thesystemfunctionmoduledesignandimplementation,andsolutionsforthetechnicaldifficultiesencounteredinthedevelopmentprocess.Throughthesystemlikeatraditionalcampusfleamarketasunnecessarystufftodealwithgraduates,butalsoinpeacetime,thestudentshaveanyidleorhaveanyneedscanbeputonlinefleamarket,notlimitedtotimeandplace,veryconvenient.
Keywords:
Eclipseplatform;Fleamarket;Javaserverpagestechnology
1绪论
1.1项目背景
跳蚤市场是对旧货地摊市场的别称。
有一个个地摊摊位组成,市场规模大小不等。
出售的商品多是二手商品、人们没有用过但对于他来说是多余的物品。
价格通常是低廉的。
目前所见的跳出市场以校园跳蚤市场居多,在当前在高校中,往往在临近毕业时是常见的,校园跳蚤市场商品多样化和价格低廉的优势,很受同学们的青睐,它也起到了物品再利用,节约资源的作用。
然而在有如此多的优点的同时,也有着许多的缺点,比如只有在毕业之际,人们才比较聚集,在平常,人们难以聚集起来这样买二手商品,而且平常也没有时间去这样买。
跳蚤市场在当前在高校中,往往在临近毕业时是常见的,跳蚤市场商品多样化和价格低廉的优势,很受同学们的青睐,它也起到了物品再利用,节约资源的作用。
然而这样的实体跳蚤市场有着不固定性及零散性的缺点。
并且不效率也费时费力。
1991年:
CERN(欧洲粒子物理研究所)的科学家提姆.伯纳斯李(TimBerners-Lee)开发出了万维网。
他还开发出了极其简单的浏览器。
此后互联网开始向社会大众普及。
随着计算机技术的飞速发展,人们对网页的要求也不在是文字,图片的简单堆砌单调内容,也可以说不仅仅是对获取信息的要求,而是更在乎实时性,交互性,和丰富性,使得动态网页越来越受欢迎。
应用JavaWeb技术可以灵活方便的访问数据库[1]。
基于以上原因,一款开源并且很适合来JavaWeb的开发工具已经悄然在程序员界流行起来,至今,Eclipse占据超过世界Java开发环境市场的50%。
基于现在校园跳蚤市场的现状,还有JavaWeb的发展,完全可以开发一个跳蚤市场系统平台并且这是非常有必要的,以解决实体跳蚤市场的上述缺点。
网上跳蚤市场有着实体跳蚤市场的商品多样化和价格低廉的优点,并且平时学生们有任何闲置的东西或有任何需求都可以放到跳蚤市场,不限时间地点,非常方便。
1.2跳蚤市场发展阶段及现状
最开始的时候,跳蚤市场是针对中下阶层,家里有用不上的东西或用旧了的东西拿出去换成现款,而也有人在那里搜寻者便宜的用品。
当然也有落魄了的家族去那里变卖家产。
但跳蚤市场成为一种时尚,西方是从伦敦卷起旋风,设计学院的学生自己做出的设计,因为没有名气而无处销售,只能找成本最便宜的跳蚤市场来摆摊,于是吸引了时髦人士前来挑选那些独一无二的衣服,逐渐成为了前卫的体现。
而在东方则是从日本开始,因为时下逐渐流行“古着”,也就是所谓的旧的、设计经典的服装,时髦的年轻人只能在跳蚤市场淘到大量的旧衣服,也成为了一种风气。
而后来跳蚤市场发展为在大街小巷随处可见,不仅仅是为了赚钱,更是为了环保,并且价格也便宜,品种多样化。
当今世界科学技术飞速发展,尤其以通信、计算机、网络为代表的互联网技术更是日新月异,令人眼花燎乱,目不睱接。
对“B/S”和“C/S”技术谁优谁劣等等问题的争论不休,但是从现在的互联网趋势来看,越来越多的企业转向了B/S技术,谁代表技术潮流发展,我想已经不言而喻了。
B/S架构软件具有维护和升级方式简单、成本降低,选择更多等优势。
而是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。
这也显得在现在的网络中WEB将会越来越重要[2]。
伴随着WEB的迅猛发展,突破地域时间上的网上交易平台也就孕育而生,各种电子商务网站也越来越热,其中网上跳蚤市场也在逐步登录网络。
越来越多人选择了网上跳蚤市场进行二手交易。
1.3论文研究的目的与意义
虽说人们更亲耐网上跳蚤市场,网上跳蚤市场也确实有很多优势,但是目前网上跳蚤市场就国内开始还是比较少的,淘宝有一个跳蚤市场,但是由于大家都在那里卖,地域性的问题就造成了附加邮费的问题,无形中破坏了跳蚤市场的便宜性。
在各大高校中,还是很少有高校有专门的跳蚤市场网站,但是人们又对跳蚤市场需求很大,所以通常是在论坛里叫卖东西,而这样没有一个专门的网站,就也同样存在零散的问题。
本文针对以上的问题,专门开发一个校园跳蚤市场系统,实现学生们在校园就可以进行二手物品的交易,突破时间地域的网上交易本台,解决传统跳蚤市场零散性的缺点。
学生们通过本校园跳蚤系统,在校园内就可以进行二手物品的甩卖,真正解决了地域性问题。
在网上选中商品之后,校园中交易,解决了因地域性破坏跳蚤市场便宜性的缺点。
2开发平台与技术的介绍
本系统是在Eclipse平台上开发的基于JavaEE的系统。
前台使用Jsp,AjAx,JavaScript等技术,后台使用Java语言,整合了Struts框架。
而数据库则采用了MySQL。
Web应用服务器选择了Tomcat服务器。
2.1Eclipse简介
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境[3]。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。
由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所[4]。
从2006年起,Eclipse基金会每年都会安排同步发布(simultaneousrelease)。
至今,已经发行到4.2。
2.2JavaEE简介
2.2.1JavaEE概念
JavaEE(JavaPlatform,EnterpriseEdition)是Sun公司推出的企业级应用程序版本。
最初这个JavaEE叫做J2EE。
随着J2EE1.5版本的发布,Sun公司将J2EE正式更名为JavaEE[5]。
JavaEE并非一个产品,二是一系列技术和标准的集合,它为应用Java技术开发服务器端应用提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署[6]。
2.2.2JavaEE运行模式
JavaEE平台继承了Java语言的安全性和高可靠性,为企业级应用的设计、开发、部署和管理提供了一套完善的解决方案,它包括了从前端Web界面到中间件,再到后端数据库系统的一系列技术和规范[7]。
JavaEE提供了一套标准的API和已组建为基础的企业框架,尤其值得注意的是,JavaEE提供了一个新的容器概念,通过容器来提供标准的系统底层服务,大大降低了企业级开发的复杂
度[8]。
JavaEE的服务包含Web容器和EJB容器,它所提供的Servlet和JSP技术都可以实现Web容器。
EJB容器主要用来进行业务逻辑的处理,这种方式能够提供较好的安全性和可靠性,它由运行在业务逻辑层的EnterpriseJavaBean处理。
一个EnterpriseJavaBean从客户端接收数据,然后进行业务逻辑处理,还可以将处理后的数据进行储存,同时它也可以从储存器获取数据,处理后将其发送到客户端[9]。
JavaEE平台使用了一个多层分布式应用程序模型。
它主要分为客户端层、Web层、业务层和EIS(企业信息系统)层[10]。
2.3Jsp技术简介
JSP是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,英文全称是JavaServerPages,JSP页面有Web服务器执行,JSP引擎接收客户端对JSP页面的请求,并且生成JSP页面作为对客户端的响应[11]。
JSP页面通常被编译成Servlet,因此JSP既可以在Windows下运行,也可以在UNIX下运行[12]。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑[13]。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易[14]。
JSP(JavaServerPages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来[15]。
采用JSP的优点主要有:
(1)一次编写,到处运行。
(2)支持多平台。
(3)强大的可伸缩性。
可支持一台服务器,也可以多台进行集群和负载均衡。
(4)众多开发工具的强大支持。
2.4Struts2框架简介
Struts2框架,是MVC框架模式,即模型(model)-视图(view)-控制器(controller)模式。
它的体系结构如图2.1所示[16]。
它强制性的使应用程序的输入、处理和输出分开。
使用MVC应用程序被分成三个核心部件:
模型、视图、控制器。
它们各自处理自己的任务。
视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。
因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则[17]。
简单的说它具有以下优点:
耦合性低,重用性高,生命周期成本低,部署快,可维护性高,有利软件工程化管理。
图2.1Strut2的体系结构
2.5MySQL简介
MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQLAB公司。
目前MySQL被广泛地应用在Internet上的中小型网站中。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库[18]。
与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQLCluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。
对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本[19]。
MySQL是开放源代码的,因此任何人都可以在GeneralPublicLicense的许可下下载并根据个性化的需要对其进行修改[20]。
目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP/Perl/Python)和LNMP(Linux+Nginx+MySQL+php/perl/Python),即使用Linux作为操作系统,Apache和Nginx作为Web服务器,MySQL作为数据库,PHP/Perl/Python作为服务器端脚本解释器。
由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统[21]。
3系统分析与设计
3.1需求分析
3.1.1功能需求
校园网上跳蚤市场主要实现二手商品信息的显示,让人们看到商品,从而协商二手商品交易。
欲实现这个过程,需要实现用户注册与登录,二手商品的供求信息发布。
除了以上功能外,为了让用户群体更方便、快捷、舒适的二手交易,本校园跳蚤市场还具备以下功能:
(1)规范、完善的基础信息设置,并且用户可以修改自己的个人信息,如密码等;
(2)用户可以对自己发布的商品信息进行管理,比如商品已经卖掉了,需要下架,以免别人在联系自己需要买此商品。
(3)按不同类别对商品进行分类
(4)模糊商品查询等多种信息搜索方式,用户可更具需求,方便、快捷的查找所需要的信息。
并对查询的信息按用户要求排序显示。
(5)用户可以对感兴趣的商品进行收藏
(6)管理人员可以对商品和用户进行管理。
比如删除非法商品,对非法用户封号等。
(7)界面统一友好。
让用户在浏览商品的时候更舒适
3.1.2功能概述
为了满足以上需求,制定如下功能模块,功能模块图如图3.1所示:
(1)用户模块
●注册、登录系统。
●发布商品。
●高级搜索:
多字段模糊搜索、类型搜索、价格区间搜索,并且可以对搜索结果按价格排序。
●用户中心:
修改用户资料、管理发布商品、管理收藏商品。
(2)管理员模块
●用户管理。
●商品管理。
●商品类别管理。
图3.1功能模块图
3.1.3系统数据流图
(1)用户处理商品数据流图,如图3.2所示
图3.2用户处理商品数据流图
(2)管理员管理数据流图,如图3.3所示
图3.3管理员管理数据流图
3.2概要设计
3.2.1体系结构设计
本系统按照Struts2的体系结构来设计系统,即MVC模式,模型(model)-视图(view)-控制器(controller)模式[22]。
它强制性的使应用程序的输入、处理和输出分开。
使用MVC应用程序被分成三个核心部件:
模型、视图、控制器。
它们各自处理自己的任务。
视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。
因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则[23]。
简单的说它具有以下优点:
耦合性低,重用性高,生命周期成本低,部署快,可维护性高,有利软件工程化管理[24]。
Struts2使用使用核心控制器FilterDispatcher来处理用户请求的控制器[25]。
下面是本系统用户登录系统的基本工作流程举例,其他动作流程基本上和登录过程是一样的。
(1)客户端浏览器发送login请求。
(2)核心控制器FilterDispatcher接收请求后,发现存在名为login的action,决定调用LoginAction的execute方法。
(3)在调用Action的execute方法之前,如果有拦截器,Struts2会调用拦截器,在执行Action方法,这里没有连接器,所以直接执行方法。
(4)在调用完拦截器连接后,Struts2就会调用LoginAction的execute方法,在execute方法中会调用业务逻辑层来处理数据库,查询用户名和密码是否正确。
正确则返回success,错误返回input。
(5)根据Action的execute方法的返回值,会将处理结果信息返回到浏览器。
也就是跳转到主页面。
这个工作流程图如图3.4所示。
图3.4举例-登录工作流程图
3.2.2各模块功能描述
(1)主页模块
主页有各个页面的入口链接
(2)用户注册模块
对用户信息进行填写
(3)用户登录模块
登录后可以进行发布商品,收藏商品等操作
(4)发布商品模块
登录后可以发布自己想卖出去的二手商品,里面可以填写商品的信息
(5)用户中心模块
可以修改自己的个人信息,也是管理发布商品,管理收藏商品的入口
(6)收藏夹模块
可以查看收藏商品和管理收藏商品
(7)管理发布商品模块
可以对发布商品的管理
(8)查看商品模块
查看商品具体信息
(9)搜索商品模块
普通搜索在每一页都可以进行,此页是高级搜索功能,提供多字段模糊查询,商品类别查询,价格区间查询,发布时间查询。
(10)类别模块
查看类别名称,点击相应类别可以查询该类别的商品
(11)管理员登录模块
输入正确的管理员ID,密码几个进入跳蚤市场系统管理
(12)管理员管理商品类别模块
可以管理商品的类别,对类别进行增删改的操作。
(13)管理员管理商品模块
对商品进行管理,可以查询商品,删除商品
(14)管理员管理用户模块
可对用户进行管理。
3.2.3数据库设计
(1)本系统E-R图如图3.5所示。
图3.5系统E-R图
(2)系统的部分实体属性E-R图如图3.6~3.9所示
图3.6用户属性E-R图
图3.6商品属性E-R图
图3.7商品子类型属性E-R图
图3.8商品类型属性E-R图
(3)数据字典
数据库名为market,在改数据库中包含如下6个表,数据库表结构如表3.1~3.6所示:
Øuser,保存注册用户信息
Øadministrator,保存管理员信息
Øgoods,保存商品信息
Øgoodstype,保存商品类型
Øsubtype,保存商品子类型
Øusercollect,保存收藏日期
表3.1用户信息表:
列名
数据类型
允许空
说明
键说明
username
Varchar12)
否
用户名
PrimaryKey
password
varchar(15)
是
用户密码
phoneNumber
varchar(20)
是
联系电话
qq
varchar(11)
是
qq号码
email
varchar(20)
是
邮箱号码
表3.2管理员信息表
列名
数据类型
允许空
说明
键说明
adID
Varchar12)
否
管理员ID
PrimaryKey
password
varchar(15)
是
管理员密码
adname
varchar(20)
是
管理员名字
表3.3商品类型表
列名
数据类型
允许空
说明
键说明
goodsTypeID
Varchar(6)
否
商品类型ID
PrimaryKey
goodsTypeName
varchar(12)
是
商品类型名称
表3.4商品子类型表
列名
数据类型
允许空
说明
键说明
subTypeID
smallint(6)
否
商品子类型ID
subTypeID
Varchar12)
否
商品子类型名称
PrimaryKey
goodsTypeID
varchar(15)
是
商品类型名称
ForeignKey,
referencesgoodstype(goodstypeID)
表3.5商品信息表
列名
数据类型
允许空
说明
键说明
username
Varchar12)
否
用户名
ForeignKey,
referencesuser(username)
goodsID
Smallint(6)
否
商品ID
PrimaryKey
goodsName
varchar(30)
是
商品名称
subtypeID
smallint(6)
是
子类型名称
releaseDate
data
是
发布日期
count
smallint(6)
是
商品数量
price
int(11)
是
商品价格
hit
int(11)
是
点击量
usertime
varchar(12)
是
使用时间
address
varchar(30)
是
交易地址
descriptionUrl
varchar(100