基于JSP的网上拍卖系统的分析与设计.doc_第1页
基于JSP的网上拍卖系统的分析与设计.doc_第2页
基于JSP的网上拍卖系统的分析与设计.doc_第3页
基于JSP的网上拍卖系统的分析与设计.doc_第4页
基于JSP的网上拍卖系统的分析与设计.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于JSP的网上拍卖系统的分析与设计基于JSP的网上拍卖系统的分析与设计摘要随着Internet的日益普及和电子商务的发展,网上拍卖迅速成为一种非常活跃的C2C电子商务模式。文中详细介绍了JSP技术以及分析了基于JSP建立网上拍卖系统的技术手段,深入探讨了如何利用JavaBean技术实现与SQL Server 2000数据库连接的方法。系统采用界面与业务逻辑分离的三层结构设计,将页面显示交由JSP控制,把业务逻辑封装在JavaBean中,提高了系统的安全性、可维护性、重用性和可扩展性。系统的注册模块应用了AJAX技术,不但实现了无刷新提交数据而且减轻了服务器的负担;通过缓存系统配置信息减轻数据库服务器的压力;对系统后台模块使用双重密码校验和验证码技术,进一步提升了系统的完全系数,使它能即使在复杂的网络环境也能以最小的系统开销正常运行。关键词:电子商务,C2C, JavaBean,AJAXABSTRACTWith the increasing popularization of Internet and the development of electronic commerce, the net auction quickly becomes one kind of active C2C electronic commerce. The article detailedly introduces a JSP technique and analyzes the technique means of building a net auction system based on JSP, then deeply discusses how to use JavaBean technique to build connection with SQL Server 2000 databases.The system uses three structural designs which the contact surface and the service logic separates, the page demonstrated hands over by the JSP control, the service logic seal in JavaBean, enhanced the system security, the maintainability, has entrusted with heavy responsibility the nature and may the extension.The system registration module has applied the AJAX technology, not only realized to not renovates submits the data moreover but lighten the server burden; It has reduced the database server through the buffer system disposition information the pressure; The systerm uses dual password verification and the confirmation code technology in the system backstage module, has further promoted the system complete coefficient, and enables it work by the smallest system expenses normal operation in the complex network environment.Key words: Electronic Commerce,C2C,JavaBean,AJAX目录第一章 绪论11.1 系统应用背景与功能11.2 系统预览21.3 系统特点2第二章 系统要解决的技术问题42.1 连接SQL Server 200042.2 安装jspSmartUpload文件上传组件42.3 JSP中文乱码问题的处理52.4页面无刷新地提交数据6第三章 系统设计83.1 系统设计思想83.1.1功能的独立化、模块化。83.1.2三层架构设计思想83.1.3 系统实现的功能93.2 系统层次概框图103.3 系统模块详细介绍113.3.1 前台模块113.3.2 后台模块12第四章 数据库设计134.1 数据库需求分析134.2 数据库逻辑设计13第五章 详细设计195.1 系统JavaBean的实现195.1.1 用户出价、商品、短信Bean的功能分析205.1.2 数据库连接类的功能分析205.1.3 管理员登录类的功能分析205.1.4 商品搜索类的功能分析215.1.5 用户登录类的功能分析215.1.6 操作商品类的功能分析225.1.7 操作用户类的功能分析245.1.8 操作短信息类的功能分析255.1.9 操作出价信息类的功能分析265.2 用户界面实现275.2.1系统首页设计275.2.2用户登录模块设计275.2.3用户注册模块设计285.2.4商品发布模块设计305.3 后台管理界面实现305.3.1后台登录模块设计315.3.2系统配置模块设计31第六章系统的运行演示效果336.1系统前台演示效果336.1.1搜索商品的运行效果336.1.2用户注册页面运行效果336.1.3发布商品页面运行效果336.1.4浏览商品页面运行效果356.1.5出价页面运行效果356.2系统后台演示效果356.1.1后台用户登录运行效果356.1.2管理用户运行效果366.1.3管理商品运行效果366.1.4管理短信息运行效果37第七章 结论38参考文献39致谢40附录A 开题报告附录B 外文资料原文附录C 外文资料译文附录D 源程序代码附录 系统使用说明书第一章 绪论1.1 系统应用背景与功能电子商务(electronic commerce)是计算机网络所带来的又一次革命,它的发展将形成新的交换体制,产生新的市场规则,冲破时间与空间的限制,加快全球市场一体化的进程,电子商务还将有力地推动信息和信息服务业的发展。它不仅涉及电子技术和商业交易本身,而且涉及到诸如金融、税务、教育等其他社会层面,是一个与社会大环境息息相关并且具有完整结构体系的系统工程。电子商务的发展为网上拍卖带来了勃勃生机,使得网上拍卖迅速成为一种非常活跃的电子商务模式1。网上拍卖系统是一个C2C模式下的电子商务系统,提供了一个网上拍卖的市场给买方和卖方,企业可以以拍卖的方式出售自己的产品。拥有商品展示、拍卖竞投、用户注册、网上支付、信息反馈和新商品发布几项基本功能。使得网上的用户可以安全、便捷的使用该系统。企业可以通过该系统观察到消费者、客户之间的买卖情况,从中获取最直接的市场消息,掌握最详细的市场动态。它与传统的拍卖模式相比具有以下五个方面的主要优势。(1)降低了采购价格,借助EDI企业能够完成自动的例行采购,可减少采购过程中人力、印刷和邮寄的费用。(2)采用“零库存”管理方式,可大大缩短资金的周转周期。(3)互联网商务更有利于开拓全球市场。(4)实现24小时不问断营业,有利于提高营业额。(5)可使用多媒体手段进行促销活动,可依靠客户数据库提供全新个人服务。随着通信技术和网络技术的飞速发展,网上拍卖的开展势在必行。应该说网上拍卖发展的前景十分广阔,作用越来越大。文中论述了构建网上拍卖系统的技术手段及其实现的关键方法。本次课程设计完成的系统主要实现的功能包括用户注册、发布商品、竞拍商品、查看商品的详细信息以及管理员通过Web方式对系统的数据进行管理。1.2 系统预览用户进入系统后的第一个界面如图1.1所示。从图中可以看出,用户进入系统后就可以注册成为会员、查看商品信息,可以按关键字或者分类来查询商品,还可以方便快捷地通过导航栏转到系统的其他功能模块。图1.1用户进入系统后的页面图1.2是用户登录系统后的页面,通过左侧的工具条可以快速切换到要进行的操作页面。而通过顶部的页面可以进入系统帮助、退出系统、快速发布商品、购买商品等功能。中间的页面一开始显示了用户是否有未读的新短信,如果有新信息则可以通过链接快速阅读,系统显示的“上次登录时间和IP”则可以使用户提早发现是否有人在盗用你的帐号。在用户选择了左侧相应的功能后则出现实现此功能的页面。1.3 系统特点本次毕业设计的拍卖系统具有以下特点。(1)页面模块化:本系统在界面设计上采用了模块化处理的思想,把很多页面共有的部分集成一个模块,例如页面的头、尾,这样在开发的时候遇到这类相似的页面部分就不再需要重新编写,而只要以一句:就可以重用这部分的内容,大大提高了系统的开发效率。图1.2用户登录系统后的页面(2)三层结构设计:本系统采用三层结构设计,将不同的复杂的数据库操作或是业务逻辑计算划分为独立的模块封装于Bean中,作为用户界面和数据库之间的中间件,所有的数据库操作由用户界面通过调用Bean来完成,提高了系统的安全性和可移植性。(3)部分页面采用AJAX技术:在系统的关键性页面应用AJAX技术能够减轻服务器的负担。(4)管理员模块采用双重密码认证:进一步提高系统的安全性。(5)面向对象设计:在系统中将用户、商品、管理员等都封装成了类,同时每个类都有相应的操作类,从而提高了对数据库操作的安全性和程序的可扩展性。(6)人性化设计:本系统的开发借鉴了淘宝网的导航样式,使系统的导航系统清晰明朗,这样不管用户位于系统的哪个位置,都能找到需要的功能。第二章 系统要解决的技术问题2.1 连接SQL Server 2000JDBC是一种用于执行SQL语句的Java API,由一组用 Java 编程语言编写的类和接口组成。JDBC 为数据库开发人员提供了一组标准的API,使他们能够用纯Java API 来编写数据库应用程序2。数据库厂商一般会提供一组API访问数据库,在安装完SQL Server 2000后再去微软官方网站下载JDBC驱动程序,然后将下载到的三个JAR包(mssqlserver.jar;msbase.jar;msutil.jar)放入WEB应用的WEB-INF/lib/下。再将SQL Server 2000升级到sp3 ,便能将SQL Server 2000默认的1433端口打开,这样JavaBean才可以顺利地访问数据库3。连接数据库的JavaBean程序片段如下。Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver).newInstance();Stringurl=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=Vendue;Stringuser=sa; /连接数据库的用户名Stringpassword=sa; /密码Connectionconn=DriverManager.getConnection(url,user,password);Statementstmt=conn.createStatement();总之,JDBC访问SQL Server 2000的问题,关键涉及到sp3补丁(端口开放)还有用户问题,解决这两个问题之后,剩余的便是操作问题了,还有就是在远程操作的时候,要把用户组设置一下,在安全性设置里亦将身份验证更改为由SQL Server 2000 验证。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常用方法的说明:SmartUpload su = new SmartUpload();/ 新建一个SmartUpload对象。su.initialize(pageContext); / 上传初始化。/ 设定上传限制。 su.setMaxFileSize(10000); / 限制每个上传文件的最大长度。 su.setTotalMaxFileSize(20000); / 限制总上传数据的长度。su.setAllowedFilesList(doc,txt);/ 设定允许上传的文件(通过扩展名限制)/仅允许doc,txt文件。su.setDeniedFilesList(jsp,); / 设定禁止上传的文件(通过扩展名限制)/禁止上传jsp扩展名和没有扩展名的文件。su.upload();/ 上传文件。 int count = su.save(/upload); / 将上传文件全部保存到指定目录 。out.println(count+个文件上传成功!);/显示处理结果。2.3 JSP中文乱码问题的处理在JSP开发中,经常出现乱码的问题。乱码问题可以分为两种,一种是页面显示的中文为乱码,第二种是对于请求的表单中的中文数据为乱码。解决页面显示的中文为乱码的方法是在JSP页面中指定编码的方式即在JSP页面的开始位置加入如下代码:对于第二种乱码问题,可以通过request.setCharacterEncoding(“GB2312”)对请求进行统一的编码实现中文的正常显示5。2.4页面无刷新地提交数据传统的 Web 应用采用同步交互过程,这种情况下,用户首先向 HTTP 服务器触发一个行为或请求的需求。反过来,服务器执行某些任务,再向发出请求的用户返回一个 HTML页面。这是一种不连贯的用户体验,服务器在处理请求的时候,用户多数时间处于等待的状态,屏幕内容也是一片空白,即使我们只需要提交一部分数据也不得不刷新整个页面,为了解决这种状况,AJAX技术就应运而生。AJAX(Asynchronous JavaScript and XML)其实是多种技术的综合,包括 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所示。采用三层架构以后,用户界面层通过统一的接口向业务层发送请求,业务层按自己的逻辑规则将请求处理后进行数据库操作,然后将数据库返回的数据封装成类的形式返回给用户界面层。这样用户界面层甚至可以不知道数据库的结构,它只要维护与业务层之间的接口即可。这种方式在一定程序上增加了数据库的安全性,同时也降低了对用户界面层开发人员的要求,因为它根本不需要进行任何数据库操作。用户界面业务处理层数据存储层数据库拍卖系统操作界面JavaBeans浏览器TomcatSQL语句结果集对象操作图3.1基于浏览器/服务器模式的三层结构系统功能模块图3.1.3 系统实现的功能(1)用户界面部分。产品选购,出价(可以按各种不同的分类进行查询)。根据关键字和类别搜索商品。查看商品的详细信息。用户注册、登录、密码找回、查看和修改个人信息。发布和修改拍卖商品信息向用户发送短信。(2)后台管理部分。对现有商品的管理:查看、删除商品。用户管理:修改、删除、查看、增加用户。分类管理:添加、修改、删除商品分类。系统管理:查看、删除系统配置信息。向用户发送短信。根据以上的功能分析可以画出系统用户界面部分的功能模块如图3.2所示,系统后台管理的模块如图3.3所示。3.2 系统层次概框图系统分为前台和后台两个模块,前台主要用来提供给系统注册用户或者游客浏览、查看商品,并提供注册的模块,系统注册用户通过登录后还能管理自己的信息和对指定的商品参与竞拍。图3.2用户界面功能模块图图3.3系统后台管理功能模块图后台是系统管理员对拍卖系统设置、管理用户和管理商品的地方。系统的系统层次概框划分如图3.4所示。用户注册(regedit.jsp)商品分类(sort.jsp)拍卖系统搜索商品(search.jsp)查看商品(viewcat.jsp)发布商品(sell.jsp)系统帮助(help.jsp)登录(login.jsp)管理用户(users.jsp)管理商品(cat.jsp)管理短信(message.jsp)系统配置(config.jsp)后台前台用户操作(User_home.jsp)用户登录(login.jsp)图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-1users用户信息表FieldTypeNullKeyDefaultCommentuIdbigintPRI用户标识isAllowLoginint0是否允许用户登录isLoginInint0用户是否已经登录lastLoginTimedatetimeYes最后一次登录时间lastLoginIpvarcharYes最后一次登录IPmsgCountint0收到的新消息数nickNamevarcharYes用户的昵称passwordvarcharYes用户密码usernamevarcharYes用户名addressvarcharYes地址emailvarcharYes邮箱creditint0信用等级degradeint0等级haopingint0好评zhongpingint0中评chapingint0差评如表4-2所示为管理员信息表,记录了系统管理员的相关信息。表中adminid为主键且设为自动增长,priv为管理员的权限字段代表着此管理员在系统中可以管理的模块,isLoginIn用来临时记录管理员的登录信息,当用户登录系统后此字段被设置为1,退出系统时重置为0,防止用户重复登录。表4-2fh_admin管理员信息表FieldTypeNullKeyDefaultCommentadminidintPRI管理员标识admin_namevarchar管理员名字admin_pwdvarcharYes管理员的密码privint0权限位isLoginInsmallint0是否已经登录如表4-3所示为商品主分类信息表,记录了系统中所有商品的分类信息。这个表的信息将被写入到/include/sort.inc文件中,以减少数据库的操作次数,提高系统的性能。表4-3 sort商品主分类信息表FieldTypeNullKeyDefaultCommentsidintPRI主分类标识sortnamevarcharYes主分类名称如表4-4所示为商品子分类信息表,记录了主分类下的所有子分类的信息。这个表的信息亦将写入到/include/sort.inc文件中,表中的ssid被设为sort表中sid的外键,防止在subsort表中出现没有父类的子分类。表4-4 subsort商品子分类信息表FieldTypeNullKeyDefaultCommentssidintPRI子分类的标识subsortnamevarcharYes子分类的名称sidintYesFK上级分类的标识如表4-5所示为短消息信息表,记录了用户之间传递的信息的详细信息。表中mid为主键并设为自动增长。isread代表此短信息是否已经被收件人阅读,0代表未读,1代表已读。from_name和to_name分别代表发件人和收件人的名字。isall代表此信息是否为群发的信息,0代表不是群发的信息,1表示是,并且只是管理员有权限发群发的信息,其isread被设置了过期时间,即过了isread的天数后信息不再提示为未读信息。表4-5 message短消息信息表FieldTypeNullKeyDefaultCommentmidintPRI短信息标识titlevarchar标题contentvarchar内容send_timetimestamp发送时间isreadint0是否已读from_namevarchar发送者to_namevarchar接受者isallsmallint0是否发给每个人如表4-6所示为用户评价数据表,记录了交易结束所用户对买家或卖家所做出的评价的详细信息。表中pjID为主键设为自动增长。uId为users表中uid的外键,保证每一条评价都是由系统用户发表的。credit为评价的得分,分为三种:中评得0分,好评得1分,差评得-1分。content是由评价者发表的。表4-6 pingjia用户评价数据表FieldTypeNullKeyDefaultCommentpjIdintPRI评价的标识uIdintFK评价者标识leixingvarchar评价类型pjDatetimestamp发表评价的时间creditint0评价的得分contentvarchar附加内容recuidint评价接受者catidint0此评价针对的商品如表4-7所示为记录用户所发布的商品的详细信息的表。表中cid为主键设为自动增长。uId为users表中uid的外键,cmain为sort表中sid的外键,csub为subsort表中ssid的外键,这些外键能保证商品的完整性。cend表示商品的拍卖是否已经结束。climit用来限制出价用户的等级也就是说只是当用户的好评数达到climit的限制时才能对商品出价,这样可以维护卖方的利益。model代表商品出售的方式是拍卖还是一价成交的方式。chot用来记录商品被用户浏览的次数,作为热点商品的参考。表4-7 cat商品信息表FieldTypeNullKeyDefaultCommentcidbigintPRI主键,递增uidintFK0发布者的标识cnamevarchar0商品名称cnewvarcharYes商品新旧程序cmainintFK0商品主分类csubintFK0商品子分类cpicvarcharYes商品图片地址ctimedatetimeYes发布商品的时间cdaysint0出售的天数cendsmallint0是否已经结束chotint0商品关注的程序cwhobuyitint0请买了这个商品climitint0用户的等级startbidint0开始价incrementint0增加等级ykjint0一口价modelsmallint0商品出售的模式如表4-8所示为记录用户对商品出价情况的信息表。表中pid为主键设为自动增长。cid为商品表cat中cid的外键,这样可以保证用户的出价都是针对已经发布的商品发出的。username为出价的用户名称。howmuch代表用户对此商品出了多少钱。表4-8bid用户出价信息表FieldTypeNullKeyDefaultCommentbidintPRI出价的标识cidintFK对就的商品标识usernamevarchar出价的用户名btimedatetime出价的时间howmuchfloat出了多少钱如表4-9所示为记录系统配置的信息表。表中name为主键,它对应着系统配置项的名称,value为这个配置项的值。这个表中的所有项都以“String name=value”的形式被写入/include/common.inc文件中如图4.2所示,从而减少数据库操作次数,提高系统性能。表4-9fh_config系统配置信息表FieldTypeNullKeyDefaultCommentnamevarcharPRI配置的名称valuevarcharYes对应的值图4.2 文件common.inc内容示例第五章 详细设计5.1 系统JavaBean的实现在创建数据库后,打开Jbuilder,创建工程和Web模块。(1) File-New Project创建一个名为Vendue的工程。(2) File-New-Web-双击Web Module(WAR)图标创建一个Web模块,名称取为webModule。选用Tomcat 5.0作为Web应用服务器10。(3) 再在工程中添加所需的类,如图5.1所示。图5.1 系统类图如图5.1所示,在Vendue下有四个类,其中各个类的作用如下。(1)Bid类:用户出价相关的信息。(2)Cat类:商品类。(3)Message类:短信息类。(4)DataBase类:该类用于实现与数据库的连接。在Admin包下有一个Login类,它的主要作用是处理管理员登录和退出。在Search包下有两个类,其中各个类的作用如下。(1)Search类:处理搜索操作。(2)Sort类:处理指定分类下的商品信息。在UserLogin包下有七个类,这是系统中最重要的一个包,其中各类的作用如下。(1)Buy类:管理用户出价的信息,包括增加出价和管理出价。(2)ChangInfo类:更改用户信息。(3)Credit类:查看用户信用信息。(4)Login类:处理用户登录。(5)op_Cat类:管理商品,包括添加、删除。(6)Regedit类:处理用户注册。(7)op_Message类:对短信息进行管理,包括发送、查看、删除。下面详细说明系统中这些类的作用和方法。5.1.1 用户出价、商品、短信Bean的功能分析应用面向对象的思想把具有共性的实体抽象成一个类11,这些用户出价、商品、短信Bean就是分别对用户出价实体、商品实体、短信实体的抽象,它们分别包含了实体的所有属性及对象的初始化构造的方法12(具体实现见附录中的相应源代码)。5.1.2 数据库连接类的功能分析这个类的名称是Database,它是一个公共类,如果其他类需要连接数据库,只需要构造这个类的对象或者继承这个类,然后调用这个类的connect()方法就可以得到Connection对象。其中main()函数是用来调试,测试与数据库的连接是否正常的方法。这个类中的属性和方法的UML图,如图5.2所示。图5.2 DataBase类的属性和方法5.1.3 管理员登录类的功能分析这个类的名称是Login位于Vendue.Admin包中,主要处理管理员登录和退出系统的事件。Check()用于检查输入的用户名和密码是否和数据库中的相符,logOut()方法在数据表中记录用户退出系统的事件,upInfo()方法用于在管理员登录系统成功后更新fh_admin表中的对应记录。主要功能函数如下。public boolean check()/检查用户的用户名和密码。public void upInfo()/ 更新登录信息。public void logOut()/用户退出系统的函数。这个类中的属性和方法的UML图如图5.3所示。图5.3包Vendue.Admin中的Login类的属性和方法5.1.4 商品搜索类的功能分析这个类的名称是Search位于Vendue.Search包中,主要是处理搜索商品操作的所有事件,其中最重要的方法是doSearch(),它会根据用户指定的信息在商品表中找到对应的商品,对于每一个符合要求的商品生成一个Cat类,再把这些类作为一个Collection对象返回。Sort类的原理与此相同。这个两个类中的属性和方法如图5.4所示。5.1.5 用户登录类的功能分析该类的主要功能是对用户登录系统时进行验证和记录登录的相关信息,如登录时间和登录时的IP地址。用户登录时调用函数check()检验用户的合法性,如果用户输入的用户名和密码是正确那么再次检查isAllowLogin()的返回值,判断系统是否允许用户登录进入系统中,然后再检查getIsLoginIn()的属性判断用户是否已经是登录系统了,如果这一系列的检查都通过了的话,就调用upInfo()来更新用户登录的信息。图5.4 Search类的属性和方法在处理用户退出的操作则比较简单直接调用logOut(),将用户数据表里相关用户的isLoginIn字段设置为0,表示用户已经退出系统了。主要功能函数如下。public boolean check()/检查用户的用户名和密码。public void upInfo()/ 更新登录信息。public void logOut()/用户退出系统的函数。这个类中的属性和方法的UML图如图5.5所示。5.1.6 操作商品类的功能分析该类的功能是操作商品的属性,是普通用户和管理员共用的类,其中通过设置属性priv来约定用户的身份是普通用户还是管理员。用户发布商品时,通过JavaBean的自省机制设置了商品类Cat的所有属性字段,再赋值给此类的cat属性,通过调用add()方法就能发布一条新的商品信息。当用户需要更新自己发布的商品的信息时,函数update()就可以提供这样的功能,它能够修改商品在数据库的相关属性。函数getInfo()是用来取得指定cid的商品的相关信息。管理员操作商品时可以通过设置权限位priv为自己的权限,delete()函数的功能就是提供给管理员删除商品信息的接口。主要功能函数如下。public boolean update()/更新对应商品的信息。public boolean getInfo()/得到指定商品的信息。public boolean delete()/删除指定商品。public boolean add()/增加新商品。这个类中的属性和方法的UML图如图5.6所示。图5.5 Login类的属性和方法图5.6 op_cat类的属性和方法5.1.7 操作用户类的功能分析用户操作的类包括三个,分别是Credit.java、ChangeInfo.java和Regedit.java。其功能分别是查看指定用户的信用记录、更改用户信息、注册及删除用户的功能。Credit类中的主要函数是fillCredit(),通过得到的用户uid从用户数据表users中取得用户的信用记录的详细情况。主要功能函数如下。public boolean fillCredit()/得到用户的详细信用记录。这个类中的属性和方法的UML图,如图5.7所示。图5.7 Credit类的属性和方法ChangeInfo类中的主要函数是change(),通过得到的用户uid更改用户数据表users中取得用户的注册信息。其中的priv属性使管理员可以更改所有用户的信息。主要功能函数如下。public boolean change()/更改用户的注册信息。这个类中的属性和方法的UML图,如图5.8所示。图5.8 ChangInfo类的属性和方法Regedit类中的主要函数是createUser(),在用户数据表users中添加新用户。其中的priv属性使管理员可以无限制地操作用户。主要功能函数如下。public void check_user()/检查用户名是否已经被注册。public void creatUser()/在用户表users中添加新用户。public voiddeleteUser()/ 这是提供给管理员使用的方法,删除指定用户。这个类中的属性和方法的UML图,如图5.9所示。5.1.8 操作短信息类的功能分析短信息的操作通过类op_Message实现,对短信息的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论