《基于Eclipse平台的跳蚤市场设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《基于Eclipse平台的跳蚤市场设计与实现毕业论文.doc(35页珍藏版)》请在三一办公上搜索。
1、中南民族大学毕业论文(设计)学院: 计算机科学学院 专业: 网络工程专业 年级:2009 题目: 基于Eclipse平台的跳蚤市场设计与实现 学生姓名: 学号: 指导教师姓名: 职称: 讲师 2013年5月中南民族大学本科毕业论文(设计)原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。 作者签名: 年 月 日 目 录摘要1Abstract.11绪论21.1 项目背景21.2 跳蚤市场发展阶段及现状21.3 论文研究的目的与意义
2、22 开发平台与技术的介绍32.1 Eclipse简介32.2 Java EE简介32.2.1 Java EE概念32.2.2 Java EE运行模式32.3 Jsp技术简介42.4 Struts 2框架简介42.5 MySQL简介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 注册
3、界面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参考文献31基于Eclipse平台的跳蚤市场设计与实现摘要:随着WEB的迅猛发展,电子商务网站在最近几年也越来越热,实体商店已经无法符合所有人的要求。越来越多的人选择方便,快捷的网上购
4、物市场。随着电子商务时代的到来,实体二手交易显得那么的不效率和费时费力。为了解决这个问题,有必要开发出网上校园跳蚤市场,为我校学生提供网上交易平台。本文设计了一个基于Eclipse平台的校园跳蚤市场,前台使用JSP技术,后台使用Java语言,整合了Struts框架,使用MySQL数据库。本文主要说明了系统的结构与功能、系统功能模块的设计与实现,并针对开发过程中遇到的技术难点给出了解决方案。通过本系统不仅能像传统校园跳蚤市场一样处理毕业生的多余物品,而且在平时学生们有任何闲置的东西或有任何需求都可以放到网上跳蚤市场,不限时间地点,非常方便。关键词:Eclipse平台;跳蚤市场;JSP技术Desi
5、gn and Implementation of Flea Market Based on Eclipse PlatformAbstract:With the rapid development of the Web, e-commerce sites in recent years more and more heat, physical stores have been unable to meet the demands of all people. More and more people choose convenient, fast on-line shopping market.
6、 With the arrival of the era of e-commerce, the entitys secondary trading seemed so not efficiency and time-consuming. To solve this problem, it is necessary to develop online campus flea market, online trading platform for our students. Designed a campus flea market based on the Eclipse platform, t
7、he foreground using JSP technology, the background using the Java language, integrated Struts framework, using a MySQL database. This paper mainly describes the structure and function of the system, the system function module design and implementation, and solutions for the technical difficulties en
8、countered in the development process. Through the system like a traditional campus flea market as unnecessary stuff to deal with graduates, but also in peacetime, the students have any idle or have any needs can be put online flea market, not limited to time and place, very convenient.Key words:Ecli
9、pse platform; Flea market; Java server pages technology1绪论1.1 项目背景跳蚤市场是对旧货地摊市场的别称。有一个个地摊摊位组成,市场规模大小不等。出售的商品多是二手商品、人们没有用过但对于他来说是多余的物品。价格通常是低廉的。目前所见的跳出市场以校园跳蚤市场居多,在当前在高校中,往往在临近毕业时是常见的,校园跳蚤市场商品多样化和价格低廉的优势,很受同学们的青睐,它也起到了物品再利用,节约资源的作用。然而在有如此多的优点的同时,也有着许多的缺点,比如只有在毕业之际,人们才比较聚集,在平常,人们难以聚集起来这样买二手商品,而且平常也没有时间
10、去这样买。跳蚤市场在当前在高校中,往往在临近毕业时是常见的,跳蚤市场商品多样化和价格低廉的优势,很受同学们的青睐,它也起到了物品再利用,节约资源的作用。然而这样的实体跳蚤市场有着不固定性及零散性的缺点。并且不效率也费时费力。1991年:CERN(欧洲粒子物理研究所)的科学家提姆.伯纳斯李(Tim Berners-Lee)开发出了万维网。他还开发出了极其简单的浏览器。此后互联网开始向社会大众普及。随着计算机技术的飞速发展,人们对网页的要求也不在是文字,图片的简单堆砌单调内容,也可以说不仅仅是对获取信息的要求,而是更在乎实时性,交互性,和丰富性,使得动态网页越来越受欢迎。应用Java Web技术可
11、以灵活方便的访问数据库1。基于以上原因,一款开源并且很适合来Java Web的开发工具已经悄然在程序员界流行起来,至今,Eclipse占据超过世界Java开发环境市场的50%。基于现在校园跳蚤市场的现状,还有Java Web的发展,完全可以开发一个跳蚤市场系统平台并且这是非常有必要的,以解决实体跳蚤市场的上述缺点。网上跳蚤市场有着实体跳蚤市场的商品多样化和价格低廉的优点,并且平时学生们有任何闲置的东西或有任何需求都可以放到跳蚤市场,不限时间地点,非常方便。1.2 跳蚤市场发展阶段及现状最开始的时候,跳蚤市场是针对中下阶层,家里有用不上的东西或用旧了的东西拿出去换成现款,而也有人在那里搜寻者便宜
12、的用品。当然也有落魄了的家族去那里变卖家产。但跳蚤市场成为一种时尚,西方是从伦敦卷起旋风,设计学院的学生自己做出的设计,因为没有名气而无处销售,只能找成本最便宜的跳蚤市场来摆摊,于是吸引了时髦人士前来挑选那些独一无二的衣服,逐渐成为了前卫的体现。而在东方则是从日本开始,因为时下逐渐流行“古着”,也就是所谓的旧的、设计经典的服装,时髦的年轻人只能在跳蚤市场淘到大量的旧衣服,也成为了一种风气。而后来跳蚤市场发展为在大街小巷随处可见,不仅仅是为了赚钱,更是为了环保,并且价格也便宜,品种多样化。当今世界科学技术飞速发展,尤其以通信、计算机、网络为代表的互联网技术更是日新月异,令人眼花燎乱,目不睱接。对
13、“B/S”和“C/S”技术谁优谁劣等等问题的争论不休,但是从现在的互联网趋势来看,越来越多的企业转向了B/S技术,谁代表技术潮流发展,我想已经不言而喻了。B/S架构软件具有维护和升级方式简单、成本降低,选择更多等优势。而是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这也显得在现在的网络中WEB将会越来越重要2。伴随着WEB的迅猛发展,突破地域时间上的网上交易平台也就孕育而生,各种电子商务网站也越来越热,其中网上跳蚤市场也在逐步登录网络。越来越多人选择了网上跳蚤市场进行二手交易。1.3 论文研究的目的与意义虽说人们更亲耐网上跳蚤市场,网上跳蚤市场也确实有很多优势,但是目
14、前网上跳蚤市场就国内开始还是比较少的,淘宝有一个跳蚤市场,但是由于大家都在那里卖,地域性的问题就造成了附加邮费的问题,无形中破坏了跳蚤市场的便宜性。在各大高校中,还是很少有高校有专门的跳蚤市场网站,但是人们又对跳蚤市场需求很大,所以通常是在论坛里叫卖东西,而这样没有一个专门的网站,就也同样存在零散的问题。本文针对以上的问题,专门开发一个校园跳蚤市场系统,实现学生们在校园就可以进行二手物品的交易,突破时间地域的网上交易本台,解决传统跳蚤市场零散性的缺点。学生们通过本校园跳蚤系统,在校园内就可以进行二手物品的甩卖,真正解决了地域性问题。在网上选中商品之后,校园中交易,解决了因地域性破坏跳蚤市场便宜
15、性的缺点。2 开发平台与技术的介绍本系统是在Eclipse平台上开发的基于Java EE的系统。前台使用Jsp,AjAx,JavaScript等技术,后台使用Java语言,整合了Struts框架。而数据库则采用了MySQL。Web应用服务器选择了Tomcat服务器。2.1 Eclipse简介Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境3。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。由于 Eclipse 中的每样东西都是插件,对
16、于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所4。从2006年起,Eclipse基金会每年都会安排同步发布(simultaneous release)。至今,已经发行到4.2。2.2 Java EE简介2.2.1 Java EE概念Java EE(Java Platform,Enterprise Edition)是Sun公司推出的企业级应用程序版本。最初这个Java EE叫做J2EE。随着J2EE 1.5版本的发布,Sun公司将J2EE正式更名为Java EE5。Java EE并非一个产品,二是一系列技术和标准的集合,它为应用J
17、ava技术开发服务器端应用提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署6。2.2.2 Java EE运行模式Java EE平台继承了Java语言的安全性和高可靠性,为企业级应用的设计、开发、部署和管理提供了一套完善的解决方案,它包括了从前端Web界面到中间件,再到后端数据库系统的一系列技术和规范7。Java EE提供了一套标准的API和已组建为基础的企业框架,尤其值得注意的是,Java EE提供了一个新的容器概念,通过容器来提供标准的系统底层服务,大大降低了企业级开发的复杂度8。Java EE的服务包含Web容器和EJB容器,它所提供
18、的Servlet和JSP技术都可以实现Web容器。EJB容器主要用来进行业务逻辑的处理,这种方式能够提供较好的安全性和可靠性,它由运行在业务逻辑层的Enterprise JavaBean处理。一个Enterprise JavaBean从客户端接收数据,然后进行业务逻辑处理,还可以将处理后的数据进行储存,同时它也可以从储存器获取数据,处理后将其发送到客户端9。Java EE平台使用了一个多层分布式应用程序模型。它主要分为客户端层、Web层、业务层和EIS(企业信息系统)层10。2.3 Jsp技术简介JSP是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,英
19、文全称是Java Server Pages,JSP页面有Web服务器执行,JSP引擎接收客户端对JSP页面的请求,并且生成JSP页面作为对客户端的响应11。JSP页面通常被编译成Servlet,因此JSP既可以在Windows下运行,也可以在UNIX下运行12。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑13。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易14。JSP(Java Server Pag
20、es)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来15。采用JSP的优点主要有:(1)一次编写,到处运行。(2)支持多平台。(3)强大的可伸缩性。可支持一台服务器,也可以多台进行集群和负载均衡。(4)众多开发工具的强大支持。2.4 Struts 2框架简介Struts2框架,是MVC框架模式,即模型(model)视图(view)控制器(controller)模式。它的体系结构如图2.1所示16。它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。视图层和业务层分离,这样就允许更改视图层代码而不用
21、重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则17。简单的说它具有以下优点:耦合性低,重用性高,生命周期成本低,部署快,可维护性高,有利软件工程化管理。图2.1 Strut2的体系结构2.5 MySQL简介MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网
22、站数据库18。与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQLCluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本19。MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改20。目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP/P
23、erl/Python)和LNMP(Linux+Nginx+MySQL+php/perl/Python),即使用Linux作为操作系统,Apache和Nginx作为Web服务器,MySQL作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统21。3系统分析与设计3.1 需求分析3.1.1 功能需求校园网上跳蚤市场主要实现二手商品信息的显示,让人们看到商品,从而协商二手商品交易。欲实现这个过程,需要实现用户注册与登录,二手商品的供求信息发布。除了以上功能
24、外,为了让用户群体更方便、快捷、舒适的二手交易,本校园跳蚤市场还具备以下功能:(1)规范、完善的基础信息设置,并且用户可以修改自己的个人信息,如密码等;(2)用户可以对自己发布的商品信息进行管理,比如商品已经卖掉了,需要下架,以免别人在联系自己需要买此商品。(3)按不同类别对商品进行分类(4)模糊商品查询等多种信息搜索方式,用户可更具需求,方便、快捷的查找所需要的信息。并对查询的信息按用户要求排序显示。(5)用户可以对感兴趣的商品进行收藏(6)管理人员可以对商品和用户进行管理。比如删除非法商品,对非法用户封号等。(7)界面统一友好。让用户在浏览商品的时候更舒适3.1.2 功能概述为了满足以上需
25、求,制定如下功能模块,功能模块图如图3.1所示:(1)用户模块l 注册、登录系统。l 发布商品。l 高级搜索:多字段模糊搜索、类型搜索、价格区间搜索,并且可以对搜索结果按价格排序。l 用户中心:修改用户资料、管理发布商品、管理收藏商品。(2)管理员模块l 用户管理。l 商品管理。l 商品类别管理。图3.1 功能模块图3.1.3 系统数据流图(1)用户处理商品数据流图,如图3.2所示图3.2 用户处理商品数据流图(2)管理员管理数据流图,如图3.3所示图3.3 管理员管理数据流图3.2 概要设计3.2.1 体系结构设计本系统按照Struts2的体系结构来设计系统,即MVC模式,模型(model)
26、视图(view)控制器(controller)模式22。它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则23。简单的说它具有以下优点:耦合性低,重用性高,生命周期成本低,部署快,可维护性高,有利软件工程化管理24。Struts2使用使用核心控制器FilterDispatcher来处理用户请求的控制器25
27、。下面是本系统用户登录系统的基本工作流程举例,其他动作流程基本上和登录过程是一样的。(1)客户端浏览器发送login请求。(2)核心控制器FilterDispatcher接收请求后,发现存在名为login的action,决定调用LoginAction的execute方法。(3)在调用Action的execute方法之前,如果有拦截器,Struts2会调用拦截器,在执行Action方法,这里没有连接器,所以直接执行方法。(4)在调用完拦截器连接后,Struts2就会调用LoginAction的execute方法,在execute方法中会调用业务逻辑层来处理数据库,查询用户名和密码是否正确。正确则
28、返回success,错误返回input。(5)根据Action的execute方法的返回值,会将处理结果信息返回到浏览器。也就是跳转到主页面。这个工作流程图如图3.4所示。图3.4 举例-登录工作流程图3.2.2 各模块功能描述(1)主页模块 主页有各个页面的入口链接(2)用户注册模块 对用户信息进行填写(3)用户登录模块 登录后可以进行发布商品,收藏商品等操作(4)发布商品模块 登录后可以发布自己想卖出去的二手商品,里面可以填写商品的信息(5)用户中心模块 可以修改自己的个人信息,也是管理发布商品,管理收藏商品的入口(6)收藏夹模块 可以查看收藏商品和管理收藏商品(7)管理发布商品模块 可以
29、对发布商品的管理(8)查看商品模块 查看商品具体信息(9)搜索商品模块普通搜索在每一页都可以进行,此页是高级搜索功能,提供多字段模糊查询,商品类别查询,价格区间查询,发布时间查询。(10)类别模块 查看类别名称,点击相应类别可以查询该类别的商品(11)管理员登录模块 输入正确的管理员ID,密码几个进入跳蚤市场系统管理(12)管理员管理商品类别模块 可以管理商品的类别,对类别进行增删改的操作。(13)管理员管理商品模块 对商品进行管理,可以查询商品,删除商品(14)管理员管理用户模块 可对用户进行管理。3.2.3 数据库设计(1)本系统E-R图如图3.5所示。图3.5 系统E-R图(2)系统的部
30、分实体属性E-R图如图3.63.9所示图3.6 用户属性E-R图图3.6 商品属性E-R图图3.7 商品子类型属性E-R图图3.8 商品类型属性E-R图(3) 数据字典数据库名为market,在改数据库中包含如下6个表,数据库表结构如表3.13.6所示: user,保存注册用户信息 administrator,保存管理员信息 goods,保存商品信息 goodstype,保存商品类型 subtype,保存商品子类型 usercollect,保存收藏日期表3.1 用户信息表:列名数据类型允许空说明键说明usernameVarchar12)否用户名Primary Keypasswordvarcha
31、r(15)是用户密码phoneNumbervarchar(20)是联系电话qqvarchar(11)是qq号码emailvarchar(20)是邮箱号码表3.2 管理员信息表列名数据类型允许空说明键说明adIDVarchar12)否管理员IDPrimary Keypasswordvarchar(15)是管理员密码adnamevarchar(20)是管理员名字表3.3 商品类型表列名数据类型允许空说明键说明goodsTypeIDVarchar(6)否商品类型IDPrimary KeygoodsTypeNamevarchar(12)是商品类型名称表3.4 商品子类型表列名数据类型允许空说明键说明s
32、ubTypeIDsmallint(6)否商品子类型IDsubTypeIDVarchar12)否商品子类型名称Primary KeygoodsTypeIDvarchar(15)是商品类型名称Foreign Key,references goodstype(goodstypeID)表3.5 商品信息表列名数据类型允许空说明键说明usernameVarchar12)否用户名Foreign Key,references user(username)goodsIDSmallint(6)否商品IDPrimary KeygoodsNamevarchar(30)是商品名称subtypeIDsmallint(6
33、)是子类型名称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
34、.1 系统部分功能关键算法(1)对搜索结构进行价格或时间的排序对搜索结构进行价格和时间的排序都是用的如下的Javascript代码,也就是对返回到用户界面上的数据进行再排序。geteCom是当前查询行顺序,一次查两行,并把结果的返回值,如果返回1 ,则当前是倒序,-1则当前是顺序,sort是对表格进行排序。function geteCom (col)return function compare(tr1,tr2)var c1=tr1.cellscol.firstChild.nodeValue; /获取上一行内容var c2=tr2.cellscol.firstChild.nodeValue;
35、/获取下一行内容if(col=2) /价格列按此比较if( parseInt(c1) parseInt(c2) return 1;else if(parseInt(c1) c2)return -1;else if(c1c2)return 1;elsereturn 0;function sort (col)var oTable = document.getElementById(tableSort); /获取排序表格var oBody = oTable.tBodies0; /获取表格身体var oRows=oBody.rows; /获取表格行var arlt=new Array; /保存表格内容
36、for(var i=0; ioRows.length;i+)arlt.push(oRowsi);arlt.sort(geteCom(col); /对表格内容进行排序var outPrint = document.createDocumentFragment(); /文件流for (var i = 0; i arlt.length; i+)outPrint.appendChild(arlti); /把排序结果放入文件流oBody.appendChild(outPrint); 把文件流内容重新写入表格(2)插入图片时,给图片命名算法Random rm = new Random(); / 获得随机数
37、 double pross = (1 + rm.nextDouble() * Math.pow(10, 6); / 将获得的获得随机数转化为字符串 String ext=uploadFileName.substring(uploadFileName.lastIndexOf(.);String fn = ;fn = uploadPath + + fixLenthString + ext; /重命名if (new File(fn).exists()result = 该文件已经存在,请为文件指定一个新的文件名!;else插入文件过程。result = 文件上传成功!;(3)管理员登录和用户登录过程,
38、先验证验证码,然后在通过DAO处理对比用户名和密码,以下代码是AdLoginAction.java部分代码。AdministratorDAO administratorDAO = new AdministratorDAOImpl();/获取管理员DAO对象Object obj = ActionContext.getContext().getSession().get(validation_code);/获取验证码对象String validationCode = (obj != null) ? obj.toString() : ;if (!validationCode.equalsIgnore
39、Case(ad.getValidationCode()/验证验证码if (ad.getValidationCode() != null)this.addActionError(验证码输入错误!);return INPUT;if (!administratorDAO.validateAd(ad)/验证用户名和密码this.addActionError(用户名或密码错误!);return INPUT;HttpSession session = request.getSession(); /获得http会话对象session.setAttribute(username, ad.getAdID();
40、/把用户名保存在会话里session.setMaxInactiveInterval(60 * 60 * 3); /设置会话时间为3小时return SUCCESS;(4)模糊搜索和多字段搜索把所有的变量都初始化成数据库处理字段,然后在优化了数据库语句。SearchAction.java: /控制器/定义变量并初始化private String sl=0; private String sh=10000;private String id=;private String low=0;private String hight=10000;private String date=;id=%+id.r
41、eplaceAll( , %)+%;id=%+id.replaceAll( , %)+%;if(date!=)date= order by releaseDate DESC;setResult(goodsDAO.search(id,low,hight,sl,sh,date);return SUCCESS;GoodsDAO.java /商品DAOjava.sql.ResultSet rs = this.execSQL(select * from goods where tag = 0 and goodsName like ? and (price between ? and ?) and (su
42、bTypeID between ? 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.103.11所示图3.10 抽象的DAO模型图图3.11 DAO的实现类3.3.3 控制模块的设计进行业务逻辑操作必须要经过控制器,基本上可以给每一
43、个实体创建一个控制器,多个方法,以对实体进行业务逻辑操作,但是有些控制需要分离开来,一方面是为了拦截器的实现,另一个方面是为了避免某些不必要的麻烦。比如用户登录和用户注册需要对输入字段进行合法性检查,在调用Action之前就需要拦截它,对其输入字段进行合法性检查。所以用户登录、和注册的Action需要分离出来。还有比如搜索Action,会对许多值进行操作,需定义多个变量,这个为了简便,我们也把它分离出来。除了对业务逻辑操作需要控制器外,其他操作也可能需要控制器,比如显示验证码。4 系统实现4.1 登录界面在此页面中,用户输入正确的用户名、密码、验证码就可以登录系统,如果输入错误和没有输入,就会相关的提示,如图4.1所示: