版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE中南民族大学毕业论文(设计)学院:计算机科学学院专业:网络工程专业年级:2009题目:基于Eclipse平台的跳蚤市场设计与实现
中南民族大学本科毕业论文(设计)原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。作者签名:年月日目录摘要 1Abstract 11 绪论 21.1项目背景 21.2跳蚤市场发展阶段及现状 21.3论文研究的目的与意义 22开发平台与技术的介绍 32.1Eclipse简介 32.2JavaEE简介 32.2.1JavaEE概念 32.2.2JavaEE运行模式 32.3Jsp技术简介 42.4Struts2框架简介 42.5MySQL简介 43 系统分析与设计 53.1需求分析 53.1.1功能需求 53.1.2功能概述 53.1.3系统数据流图 63.2概要设计 73.2.1体系结构设计 73.2.2各模块功能描述 83.2.3数据库设计 93.3详细设计 123.3.1系统部分功能关键算法 123.3.2业务层逻辑设计 143.3.3控制模块的设计 154系统实现 164.1登录界面 164.2注册界面 164.3主页界面 174.4商品类型界面 184.5商品详情界面 194.6商品列表界面 194.7发布商品界面 204.8出售中的商品界面 204.9收藏夹界面 214.10管理员登录界面 214.11管理界面 225系统测试 225.1注册和登录测试 225.2发布商品测试 245.3管理我的商品测试 255.4收藏夹功能测试 265.5搜索和排序测试 265.6管理功能测试 276结论 30致谢 30参考文献 31PAGE32摘要:随着WEB的迅猛发展,电子商务网站在最近几年也越来越热,实体商店已经无法符合所有人的要求。越来越多的人选择方便,快捷的网上购物市场。随着电子商务时代的到来,实体二手交易显得那么的不效率和费时费力。为了解决这个问题,有必要开发出网上校园跳蚤市场,为我校学生提供网上交易平台。本文设计了一个基于Eclipse平台的校园跳蚤市场,前台使用JSP技术,后台使用Java语言,整合了Struts框架,使用MySQL数据库。本文主要说明了系统的结构与功能、系统功能模块的设计与实现,并针对开发过程中遇到的技术难点给出了解决方案。通过本系统不仅能像传统校园跳蚤市场一样处理毕业生的多余物品,而且在平时学生们有任何闲置的东西或有任何需求都可以放到网上跳蚤市场,不限时间地点,非常方便。关键词:Eclipse平台;跳蚤市场;JSP技术DesignandImplementationofFleaMarketBasedonEclipsePlatformAbstractKeywords:EclipseplatformJavaserverpagestechnology
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图数据字典数据库名为market,在改数据库中包含如下6个表,数据库表结构如表3.1~3.6所示:user,保存注册用户信息administrator,保存管理员信息goods,保存商品信息goodstype,保存商品类型subtype,保存商品子类型usercollect,保存收藏日期表3.1用户信息表:列名数据类型允许空说明键说明usernameVarchar12)否用户名PrimaryKeypasswordvarchar(15)是用户密码phoneNumbervarchar(20)是联系电话qqvarchar(11)是qq号码emailvarchar(20)是邮箱号码表3.2管理员信息表列名数据类型允许空说明键说明adIDVarchar12)否管理员IDPrimaryKeypasswordvarchar(15)是管理员密码adnamevarchar(20)是管理员名字表3.3商品类型表列名数据类型允许空说明键说明goodsTypeIDVarchar(6)否商品类型IDPrimaryKeygoodsTypeNamevarchar(12)是商品类型名称表3.4商品子类型表列名数据类型允许空说明键说明subTypeIDsmallint(6)否商品子类型IDsubTypeIDVarchar12)否商品子类型名称PrimaryKeygoodsTypeIDvarchar(15)是商品类型名称ForeignKey,referencesgoodstype(goodstypeID)表3.5商品信息表列名数据类型允许空说明键说明usernameVarchar12)否用户名ForeignKey,referencesuser(username)goodsIDSmallint(6)否商品IDPrimaryKeygoodsNamevarchar(30)是商品名称subtypeIDsmallint(6)是子类型名称releaseDatedata是发布日期countsmallint(6)是商品数量priceint(11)是商品价格hitint(11)是点击量usertimevarchar(12)是使用时间addressvarchar(30)是交易地址descriptionUrlvarchar(1000)是商品描述tagvarchar(1)是卖出标记imgUrlvarchar(100)是商品图片表3.6收藏信息表列名数据类型允许空说明键说明usernamevarchar(12)是用户名goodsIDsmallint(6)是商品IDcollectDatedate是收藏日期3.3详细设计3.3.1系统部分功能关键算法(1)对搜索结构进行价格或时间的排序对搜索结构进行价格和时间的排序都是用的如下的Javascript代码,也就是对返回到用户界面上的数据进行再排序。geteCom是当前查询行顺序,一次查两行,并把结果的返回值,如果返回1,则当前是倒序,-1则当前是顺序,sort是对表格进行排序。<scripttype="text/javascript"> functiongeteCom(col) { returnfunctioncompare(tr1,tr2) { varc1=tr1.cells[col].firstChild.nodeValue;//获取上一行内容 varc2=tr2.cells[col].firstChild.nodeValue;//获取下一行内容 if(col==2)//价格列按此比较 { if(parseInt(c1)>parseInt(c2)) return1; elseif(parseInt(c1)<parseInt(c2)) return-1; else return0; } else//其他列按此比较 { if(c1>c2) return-1; elseif(c1<c2) return1; else return0; } }; } functionsort(col) { varoTable=document.getElementById("tableSort");//获取排序表格 varoBody=oTable.tBodies[0];//获取表格身体 varoRows=oBody.rows;//获取表格行 vararlt=newArray;//保存表格内容 for(vari=0;i<oRows.length;i++) { arlt.push(oRows[i]); } arlt.sort(geteCom(col));//对表格内容进行排序 varoutPrint=document.createDocumentFragment();//文件流 for(vari=0;i<arlt.length;i++) { outPrint.appendChild(arlt[i]);//把排序结果放入文件流 } oBody.appendChild(outPrint);把文件流内容重新写入表格 } </script>(2)插入图片时,给图片命名算法Randomrm=newRandom(); //获得随机数 doublepross=(1+rm.nextDouble())*Math.pow(10,6); //将获得的获得随机数转化为字符串 Stringext=uploadFileName.substring(uploadFileName.lastIndexOf(".")); Stringfn=""; fn=uploadPath+"\\"+fixLenthString+ext;//重命名 if(newFile(fn).exists()) { result="该文件已经存在,请为文件指定一个新的文件名!"; } else { 插入文件过程。 result="文件上传成功!"; } (3)管理员登录和用户登录过程,先验证验证码,然后在通过DAO处理对比用户名和密码,以下代码是AdLoginAction.java部分代码。 AdministratorDAOadministratorDAO=newAdministratorDAOImpl(); //获取管理员DAO对象Objectobj=ActionContext.getContext().getSession().get("validation_code");//获取验证码对象 StringvalidationCode=(obj!=null)?obj.toString():""; if(!validationCode.equalsIgnoreCase(ad.getValidationCode())) { //验证验证码 if(ad.getValidationCode()!=null) { this.addActionError("验证码输入错误!"); } returnINPUT; } if(!administratorDAO.validateAd(ad)) { //验证用户名和密码 this.addActionError("用户名或密码错误!"); returnINPUT; } HttpSessionsession=request.getSession();//获得http会话对象 session.setAttribute("username",ad.getAdID());//把用户名保存在会话里 session.setMaxInactiveInterval(60*60*3);//设置会话时间为3小时 returnSUCCESS;(4)模糊搜索和多字段搜索 把所有的变量都初始化成数据库处理字段,然后在优化了数据库语句。 SearchAction.java://控制器//定义变量并初始化 privateStringsl="0"; privateStringsh="10000"; privateStringid=""; privateStringlow="0"; privateStringhight="10000"; privateStringdate=""; id='%'+id.replaceAll("","%")+'%'; id='%'+id.replaceAll("","%")+'%'; if(date!="") date="orderbyreleaseDateDESC"; setResult(goodsDAO.search(id,low,hight,sl,sh,date)); returnSUCCESS; GoodsDAO.java//商品DAOjava.sql.ResultSetrs=this.execSQL("select*fromgoodswheretag=0andgoodsNamelike?and(pricebetween?and?)and(subTypeIDbetween?and?)"+date,id,low,hight,sl,sh);3.3.2业务层逻辑设计实体域之间的关系如图3.9所示图3.9实体域关系模型有了实体域模型,还必须得有DAO模型来操作这些实体,针对每一个实体域模型,都有一个DAO模型和它对应,主要包括用户DAO,管理员DAO,商品DAO,商品类型DAO,商品子类型DAO,收藏DAO。DAO的实现类主要实现了DAO接口,并继承了DAOSupport类,如图3.10~3.11所示图3.10抽象的DAO模型图图3.11DAO的实现类3.3.3控制模块的设计进行业务逻辑操作必须要经过控制器,基本上可以给每一个实体创建一个控制器,多个方法,以对实体进行业务逻辑操作,但是有些控制需要分离开来,一方面是为了拦截器的实现,另一个方面是为了避免某些不必要的麻烦。比如用户登录和用户注册需要对输入字段进行合法性检查,在调用Action之前就需要拦截它,对其输入字段进行合法性检查。所以用户登录、和注册的Action需要分离出来。还有比如搜索Action,会对许多值进行操作,需定义多个变量,这个为了简便,我们也把它分离出来。除了对业务逻辑操作需要控制器外,其他操作也可能需要控制器,比如显示验证码。4系统实现4.1登录界面在此页面中,用户输入正确的用户名、密码、验证码就可以登录系统,如果输入错误和没有输入,就会相关的提示,如图4.1所示:图4.1登录界面关键代码: <!--Struts2表单--><FONTcolor="red"><s:actionerror/></FONT> <s:formaction="login"validate="true"id="login_c_l"> //表单提交给名为login的action <s:textfieldlabel="用户名"name="username"cssClass="input_1"/> <s:passwordlabel="密码"name="password"cssClass="input_1"/> <s:textfieldlabel="验证码"name="validationCode"cssClass="input_1"/> <s:submitvalue="提交"cssClass="button_2"/> </s:form><imgid="img_validation_code"src="validate_code.action"/>//通过validate_code.action去验证码图片<ahref="#"onClick="refresh()">重新获得验证码</a><!--Struts2表单-->4.2注册界面注册界面可以注册用户,和登录界面一样,如果输入错误和没有输入,就会相关的提示,如图4.2所示:图4.2注册界面4.3主页界面此页面并不是把所有功能罗列在一起,而是像现在流行的电子商务网站一样,把入口放在不同的地方,方便用户习惯,比如上面显示用户名的后面会有进入用户中心的链接,顶部可以快速进入收藏夹,还有搜索条,可以快速模糊多字段搜索。除此之外,下面还会显示一些热门商品,也就是点击量高的商品,如图4.3所示:图4.3主页界面关键代码:<!—显示商品类型--><s:iteratorvar="type"value="result"status="status"> <s:iftest="%{#status.index<3}"><tr><td><spanclass="STYLE7"><s:propertyvalue="#type.goodsTypeName"/></span></td></tr> <tr><s:iteratorvar="subType"value="subResult"status="substatus"> <s:iftest="#subType.goodsTypeID==#type.goodsTypeID"><td><ahref="search?sl=<s:propertyvalue="#subType.subTypeID"/>&sh=<s:propertyvalue="#subType.subTypeID"/>"><s:propertyvalue="#subType.subTypeName"/></a></td></s:if></s:iterator> <td><ahref="ulist"class="STYLE6">更多></a></td></tr> </s:if></s:iterator><!—显示热门商品--> <s:iteratorid="goods"value="goodsResult"status="status"> <s:iftest="%{#status.index<=3}"> <td><br></br><p><imgsrc="../upload/<s:propertyvalue="#goods.imgUrl"/>"width="127"height="121"/></p><p><s:propertyvalue="#goods.price"/>元</P><ahref='onGoods?id=<s:propertyvalue="#goods.goodsID"/>&uname=<s:propertyvalue="#goods.username"/>'> <s:propertyvalue="#goods.goodsName"/></a><br></br></td></s:if></s:iterator>4.4商品类型界面在此页面可以查看到所有商品的类型,点击相应的类型,会显示相应类型的商品,如图4.4所示:图4.4商品分类界面
4.5商品详情界面此页面可以看到单一商品的详情,点击“立即收藏”还可以收藏商品,如图4.5所示:图4.5商品详情界面4.6商品列表界面点击最新发布、搜索商品、分类查看、点击我们闲置-已出售商品,都会跳到此页,此页可以对结果进行按发布时间排序、价格排序、价格区间的选择。点击相应商品可以跳转到该商品详情,如图4.6所示:图4.6商品列表界面4.7发布商品界面发布商品也可以发布商品,填写商品相关信息,上传商品图片,如图4.7所示:图4.7发布商品界面4.8出售中的商品界面此页面显示用户当前正在出售的商品,可以在把相应商品下架,也就是改为已出售商品,其他用户就不能看到此商品了,如图4.8所示:图4.8出售中的商品界面关键代码: <s:iteratorid="goods"value="result"status="status"><imgsrc="../upload/<s:propertyvalue="#goods.imgUrl"/>"width="127"height="121"/><ahref='onGoods?id=<s:propertyvalue="#goods.goodsID"/>'> <s:propertyvalue="#goods.goodsName"/> </a><s:propertyvalue="#goods.price"/>元<s:propertyvalue="#goods.releaseDate"/><ahref="sell?id=<s:propertyvalue="#goods.goodsID"/>">改为已经出售</a></s:iterator>4.9收藏夹界面此页面会显示用户收藏的商品,和收藏时间,点击相应商品,可以浏览该商品,可以点击“删除”来删除相应的收藏,如图4.9所示:图4.9收藏夹界面4.10管理员登录界面输入正确的管理员ID和密码后可以登录跳蚤市场管理,如图4.10所示:图4.10管理员登录界面4.11管理界面可以对商品类型、商品、用户进行管理,如图4.11所示:图4.11管理界面5系统测试5.1注册和登录测试输入如图5.1的数据,验证输入字段校验,如图5.1所示:图5.1输入字段校验测试输入错误的验证码,以及合法的用户名和密码,检查验证码是否有效,结果如图5.2所示:图5.2验证码测试输入合法的用户名和正确的验证码,但两次密码不同,结果如图5.3所示:图5.3密码一致校验测试输入正确的注册信息,提交后,会提示注册成功,如图5.4~5.5所示:图5.4输入正确的注册信息图5.5提示注册成功进入登录界面,输入登录信息后,转到主页面,如图5.6~5.7所示:图5.6登录系统图5.7登录成功5.2发布商品测试用刚才注册的用户发布一个商品,在最新发布可以看到此商品,如图5.8~5.9所示:图5.8发布商品测试图5.9最新发布页面5.3管理我的商品测试进入“我的闲置-出售中的”,看是否有刚刚发布的商品,点击“改为已出售”,进入“我的闲置-已售出的”,查看该商品,如图5.10~5.11所示:图5.10出售中的页面图5.11已售出的5.4收藏夹功能测试收藏一个商品,进入收藏夹,查看该商品。删除收藏后在此查看此页,如图5.12~5.13所示:图5.12收藏夹图5.13删除收藏后的收藏夹5.5搜索和排序测试进入分类页面,点击类型“女装”,会出现该类型的商品,如图5.14所示:图5.14女装类型商品点击上面的发布时间或价格,就会按照相应的排序,选择价格区间,还会列出相应的区间的商品,如图5.15所示:图5.15按价格低到高排序在顶部的搜索栏输入“短袖女”模糊多字段搜索,出现如图5.16所示商品:图5.16搜索“女装女”结果5.6管理功能测试进入管理员登录页面,输入正确的管理员ID和密码,进入管理系统主页,如图5.17~5.18所示:图5.17管理员登录图5.18商品类型管理删除饮料类型,如图5.19所示:图5.19删除饮料类型后页面 添加饮料类型,如图5.20所示:图5.20添加饮料类型把类型“百货”修改为“用品”,如图5.21所示:图5.21类型“百货”修改为“用品” 进入商品管理,删除第一个商品;如图5.22~5.23所示:图5.22商品管理图5.23删除第一个商品后 进入用户管理,删除“ceshi”用户,如图5.24~5.25所示:图5.24用户管理图5.25删除测试用户后6结论本跳蚤市场开发是针对当前跳蚤市场的现状和校园对跳蚤市场的需求开发的,本系统在Eclipse平台上开发的基于JavaEE的系统,整合Struts2框架,采用了MySQL作为该系统的数据库。基本实现跳蚤市场的功能。本系统实现了以下功能:普通用户能够发布、浏览、收藏、搜索商品。管理员能够对商品、商品类型、用户进行管理。由于个人能力和时间有限,本系统还存在很多不足之处,主要有个几个方面:系统功能不是很完善,有些功能还没有实现界面不够优美,还需提高美工技能没有太多的考虑系统的安全性展望:对于以上方面不足,希望日后通过我的努力能够加以完善。并且在网上购物优势日趋明显的现状,希望我能够在这方面有所成就,提高自我,方便大家。致谢本毕业设计得到顺利的完成,我不禁要对我身边的老师和同学们表示感谢。他们不仅仅在毕业设计中给了我许多建议和技术上的帮助,在我遇到困难的时候,也给了我鼓励和精神上的支持。在这一个学期的毕业设计工作中,我特别要感谢我的指导老师舒万能。渊博的学识,忘我的工作精神和严谨的治学作风,无一不使我受益终生。从一开始老师给我的论文选题、到撰写开题报告、初稿、定稿中的细心、严谨的专业帮助,在每个环节都给我提出珍贵的建议,使得我的论文能如期并合格的完成。最后,衷心感谢答辩组的各位老师对能够百忙之中抽出时间来评审本文,和对学生的指导和教诲,我也在努力积蓄着力量,尽自己的微薄之力回报母校的培育之情,争取自己的人生对社会存在着价值。参考文献[1]刘亚宾等.精通Eclipse[M].北京:电子工业出版社,2004.[2]温谦.HTML+CSS网页设计与布局从入门到精通[M].北京:机械工业出版社,2008.[3]刘斌.精通JavaWeb整合开发(JSP+AJAX+Struts+Hibernate)(第2版)[M].北京:电子工业出版社,2011.[4]孙卫琴等.Tomcat与JavaWeb开发技术详解(第2版)[M].北京:电子工业出版社,2009.[5]蒲子明等.Struts2+Hibernate+Spring整合开发技术详解[M].北京:清华大学出版社,2010.[6]KynnBartlett.CSS入门经典[M].北京:人民邮电出版社,2007.[7]黄缙华等.MySQL入门很简单[M].北京:清华大学出版社,2011.[8]刘增杰,张少军等.MYSQL5.5从零开始学[M].北京:清华大学出版社,2007.[9]郑阿奇等.Eclipse实用教程[M].北京:电子工业出版社,2009.[10]王月清等.JavaWeb开发实战经典基础篇[M].北京:清华大学出版社,2010.[11]李宁等.JavaWeb开发技术大全[M].北京:清华大学出版社,2009.[12]郑成增,陈志锋.基于B/S模式的Web数据库技术研究[J].山西大学学报,2000.[13]AwadEliasM.principlesofDatabaseSystems[M].American:ComputerSciencePress.1992:52-144.[14]HUANGHai,ZHUYue-long.ResearehonAPPlieationofJZEEDesignPattemsandFrameworkTeehnology[J].ComputerandModernization,2006;22(5):114-116.[15]郭峰等.我的J2EE成功之路[M].北京:电子工业出版社,2009.[16]赵国峰.JSP数据库通用莫开开发与系统移植.北京:清华大学出版社,2007.[17]张跃平.JSP基础教程(第2版).北京:清华大学出版社,2009.[18]AbrahamSilberschat&HenryF.Korth&S.Sudarshan.Adamski.DatabaseSystemConcepts,FourthEdition.[M].北京:机械工业出版社,2003.[19]F.Wu,S.Li,andYQ.Zhang.Aframeworkforefficientprogressivefinegranularityscalablevideocoding.[J]IEEETrans.CircuitsSystemVideoTechnology,2001,11(7):210-212.[20]TranD.A.,HuaK.A.,DoT.T.APeer-to-PeerArchitectureforMediaStreaming.IEEEJournalonSelectedAreasinCommunications,2004,22(1):128-130.[21]蒙祖强.JSP程序员成长攻略[M].北京:中国水利水电出版社.2008.[22]俞雷,周松建.ASP.NET应用开发百例[M].清华大学出版社,2003,52-56.[23]KarlMoss.JavaServlet开发人员指南[M].北京:清华大学出版社,2002:56-67.[24]梁勤欧,祝国瑞.人工免疫系统及其在空间信息系统中的应用研究[J].测绘通报,2002,6(12):13-16.[25]邵军力,张景,魏长华.人工智能基础[M].北京:电子工业出版社,2000.基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度培训班业务转让协议典范
- 2024年化工厂房租赁协议格式
- 《Flash CS6动画制作案例教程》教学课件 008
- 2024年限定区域房地产销售代理协议
- 小孩带到工厂免责协议书
- 2024年出租车承包服务协议
- 2024年化鱼苗销售协议模板
- 2024年度业务处理外包公司协议典范
- 二手车交易协议2024年样式
- 2024酒店客房预订及服务协议
- 零星维修工程施工组织设计
- 危险预知训练教材(KYT)
- ISO9001体系文件与IRIS标准条款对应表
- 汉语教师志愿者培训大纲
- SPC培训资料_2
- 压力表使用警示标识
- 小学英语课堂教学策略与方法探讨
- 2019年重庆普通高中会考通用技术真题及答案
- DB44 T 552-2008 林业生态 术语
- 天秤座小奏鸣曲,Libra Sonatine;迪安斯,Roland Dyens(古典吉他谱)
- 三国志11全人物信息(五维、特技、生卒年等)
评论
0/150
提交评论