资源描述
北京化工大学北方学院毕业设计(论文)诚信申明本人申明:我所呈交的本科毕业设计(论文)是本人在导师指导下对四年专业知识而进行的研究工作及全面的总结。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中创新处不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京化工大学或其它教育机构的学位或证书而已经使用过的材料。与我一同完成毕业设计(论文)的同学对本课题所做的任何贡献均已在文中做了明确的说明并表示了谢意。若有不实之处,本人承担一切相关责任。本人签名: 年 月 日 网上宠物商店的设计与实现摘 要科学技术日新月异的进步让人类生活发生了巨大的变化,计算机技术的飞速发展,使各行各业在计算机技术应用方面得到了广泛的普及和使用。因此,网上宠物购买也以方便、快捷、费用低的优点正慢慢地进入人们的生活,将传统的宠物买卖方式彻底的解脱出来,提高效率,减轻工人人员以往繁忙的工作,减小出错的概率,使宠物购买者可以花更多的时间在选择宠物上。从而使人们有更多时间来获取信息、了解信息、掌握信息 。JSP(Java Server Pages)技术是由Sun公司发布的用于开发动态Web应用的一项技术。它以其简单易学、跨平台的特性,在众多动态Web应用程序设计语言中异军突起,在短短几年中已经形成了一套完整的规范,并广泛地应用于电子商务等各个领域中。在国内,JSP现在也得到了比较广泛的重视,得到了很好的发展,越来越多的动态网站开始采用JSP技术。JSP技术可以以一种简捷而快速的方法生成Web页面。使用JSP技术的Web页面可以很容易地显示动态内容。因此本人结合实际要求,对MySQL数据库管理系统、SQL语言原理、JSP技术进行了较深入的学习和应用,主要完成对网上宠物购买的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。系统运行实现了用户信息管理,宠物信息管理等功能。本系统经过测试,运行效果稳定,操作方便、快捷。在具体的应用过程中,有可能会出现一些问题,今后我们还会对本系统不断地进行完善、更新,使其功能更强大,应用更广泛。关键词:购物宠物店 MySQL JSP Servlet Design and Implementation of Online Pet Shop AbstractThe advance of the science technique continuous changes and improvements, that let the life take place the enormous variety. The computer to develop soon, making the every trade get the extensive universality with use in the aspects of calculator technique applying. Therefore, books shopping on the internet system too with the convenience, fast, low advantage in expenses is entering people life slowly, manage the traditional books to way to set free out thoroughly, lift high-efficiency, alleviate workers personnel former busy work, let up to come amiss all rate, can make the reader spend more time at choose the book. People have more time to obtain the information, understand the information and control the information.The JSP (Java Server Pages) technology is used by the Sun microsystem issued by the company to develop dynamic Web application technology. With its easy, cross-platform, in many dynamic Web application programming languages, in a short span of a few years, has formed a complete set of standards, and widely used in electronic commerce, etc. In China, the JSP now also got more extensive attention, get a good development, more and more dynamic website to JSP technology.The JSP a simple technology can quickly and with the method of generating Web pages. Use the JSP technology Web page can be easily display dynamic content. So combine and make the demand of fact, use and design program to MySQL data base management system , SQL language principle , JSP technology has carried on the deeper study and application, finish demand analysis , function module dividing , database mode analysis to the books shopping on the internet system mainly, and has designed structure of the database and application program from this. System realizes management of user information, management of books information and so on. Through the testing , the operation result of the system is steady .It is easy to operate and the speed is fast . The system will be likely to appear some problem during the application course. For the future, we will constantly perfect and renovate the system. It will become better than before. Key words: Pet Shop MySQL JSP Servlet目 录 前 言1第1章 课题研究价值2第1.1节 选题背景及意义2第1.2节 研究现状2第1.3节 论文的研究内容3第2章 系统分析4第2.1节 系统概述4第2.2节 系统可行性分析4第2.3节 系统技术需求5第2.4节 业务流程分析13第2.5节 系统的数据流程图分析15第3章 系统设计19第3.1节 系统功能需求19第3.2节 系统功能模块设计19第3.3节 系统总体结构图20第3.4节 数据库设计20第4章 系统的实现23第4.1节 网上宠物购买登录模块的实现23第4.2节 宠物信息分类显示26第4.3节 购物车模块27第4.4节 站内搜索模块29第4.5节 后台管理 模块29第5章 系统的测试与维护30第5.1节 系统测的试简述30第5.2节 系统运行环境的搭建31第5.3节 系统测试32结 论34参考文献35致 谢3637北京化工大学北方学院毕业设计(论文)前 言随着科技发展和社会进步,21世纪进入了信息的时代,是网络的时代,进入信息社会高速发展的时代,数字化革命给所有领域带来新的改变。随着Internet的普及,电子商务近年来随着网络技术的发展而迅速占有了很大的市场,足不出户就能选购多种多样的商品时人们已经习以为常的购物方式,而现代人对于宠物的定位也是随这社会发展在变化着,宠物越来越占有者重要的低位。因此网上宠物商店是应运而生的一种新型的经营宠物的方式1。JSP是一种网络服务器端编程环境。JSP已经成为开发信息化平台的重要而快速、有效的工具。JSP强大的功能使之成为一种优秀的服务器技术。随着网络技术的日益成熟,JSP技术在网络编程中也变得越来越重要。所以,在我们的毕业设计中,我们采用了JSP作为开发工具,构建了一个便捷的电子商务网站网上宠物商店系统。该系统能是用户在线浏览网站上的宠物信息,选购自己喜爱的宠物,并且加入了购物车功能,用户可以自己生成订单,并对订单进行修改以及管理;本系统还可以后台设置具有不同管理权限的管理员,对已有商品,订单,注册会员进行管理。通过这次的毕业设计,我了解了目前流行的电子信息化平台构成和运作原理,掌握了用JavaWeb构建动态系统的相关知识和技术原理,锻炼了自己的动手实践能力。更重要的是,通过这次的毕业设计,我培养出了刻苦钻研的学习精神和严肃认真的学习态度,这对我以后的学习和工作有很大的益处。在这次毕业设计过程中,我得到了指导老师的悉心指导和同学的热心帮助,在此,我对他们表示衷心的感谢! 第1章 课题研究价值第1.1节 选题背景及意义现在宠物够买途径最多莫过于亲临大中小宠物店,直接购买,订购,但是也有一定的弊端。(1)宠物更新频率快,但宠物店存货多为过期宠物,更新速率缓慢在知识爆炸的今天,宠物作为知识传播媒介,更新,发布频率更快,往往刚发布的宠物不过一个月便过时,而刚上市几天疯抢;而网上宠物购买在这方面优势明显,更新速率可保持与发布时间同步,掌握先机,就把握了大众需求。 (2)购物时间,地域的限制普通宠物店只白天营业,晚间打烊,且需要购物本人亲临宠物店挑选,而网上宠物店对此全无限制,全天24小时顾客可随意购买,搜索只需上网登陆网站,省去舟车劳顿之苦,即使在家上网,也可轻松购物。(3)宠物价普通平常宠物店价格为正常市场售价,而网上宠物店多长期打折,加上大量的不定期有奖优惠活动,网上宠物购买的价目往往更易令购宠物者心动;且选择方便,更可以货比三家。(4)资源成本正规宠物店需要店面租赁,售货员雇佣,水电装修等多项杂费,而网上宠物店的成本相比之下微乎其微,运做成本的低廉使得利润及可行性上升。综上,网上宠物购买的优势明显,在完善后是一种高效的,系统化的,安全的,具有跨时代意义的网上购物系统。第1.2节 研究现状伴随着网络的出现,网络逐渐融入人们的生活。快速及时的信息查找,大容量的信息存储,使网络与人们的生活息息相关,网上购物,已不是陌生词汇;(1)国外状况由于起步较早,设施基础好,技术先进,如今已经被广泛的使用,人们也已习惯使用,并从中获得了便利,在技术、完整性建设方面,也日趋成熟。(2)国内现状网上宠物购买才刚刚起步,其规模和系统性都有待提高,伴随网络普及,越来越多的人接受了网上宠物购买,并开始慢慢习惯、喜欢,简单快捷的购物方式,省时省力的挑选流程,使人们认识到了网上宠物店的优点;目前,各类购物网站如雨后春笋般蓬勃兴起,各门类网站鳞次栉比,网络的传媒性使人们认识到网上购物的潜力与前景,并使我们有信心去使之完善2。第1.3节 论文的研究内容随着互联网的普及,网上购物已逐渐被人们所接受,它也成为了互联网经济的一个重要组成部分,网上购物为越来越多人所接受,喜爱;应用网络优势,开发购物宠物店网站,为宠物爱好者提供便利,节约选购时间与购物成本,也为出售者提供了售卖媒介,最大程度的发挥互联网本身的信息化优势是课题研究的主要内容,该网上宠物购买主要包括如下内容3:(1)用户注册:对于第一次登陆系统的用户需要进行注册,已经在系统注册的用户可直接输入用户名和密码进入,无须重新注册。(2)查看用户订单信息:查看已经注册的用户订单的一些基本信息。(3)修改购物车信息:对每一条用户订单的基本信息可以进行修改操作。(4)删除购物车信息:可以对用户购买宠物信息进行删除操作。(5)管理员添加宠物信息:管理员可以进行网站宠物的添加。(6)管理员删除宠物信息:管理员可以对宠物信息进行删除操作。(7)用户查找宠物信息:用户可以通过搜索查找自己想找的宠物。第2章 系统分析第2.1节 系统概述2.1.1 系统的一般描述该系统的开发主要是为了实现网上宠物的买卖,方便用户对宠物信息的查看个搜索,有效地利用了现有的网络资源,促进信息化发展,也能使用户利用互联网就可以足不出户的了解到宠物情况。网上宠物购买主要功能包括用户注册,用户登录,用户个人信息的查看和修改,前台的宠物查看,宠物检索,并且可以对满意宠物提交订单,后台主要实现宠物的增加,查看,检索以及对用户订单进行处理等功能4。2.1.2 系统的运行环境为了保证系统运行的效率和可靠性,系统服务器端应具有较高的软硬件配置,客户端的要求不是很高。此应用程序可广泛运行于国际互联网即Internet,也可适用于内部的局域网。其运行要求如下:(1)操作系统:WindowsXP/win 7(2)浏览器:Internet Explorer 6.0(3)数据库:MySQL(4)服务器:Tomcat 6.0 第2.2节 系统可行性分析2.2.1 技术可行性本系统采用win 7作为操作平台。数据库开发平台选用MySQL该数据库管理系统在各windows平台上都能运行,并提供数据库之间的数据复制功能,可代替现有系统单据数据的手工传递工作,降低出错率,提高数据的可用性。本系统的应用软件开发平台选用JSP。 2.2.2 经济可行性采用宠物管理借阅系统可取代原系统的手工工作,减少人工开支,节省资金,并且可大大提高信息量的取得,缩短信息处理周期,提高借阅效率,工作人员出错的概率也小了,读者可以花更多的时间在选择宠物和看宠物上。 2.2.3 运行可行性本系统操作简单,上手较快,宠物管理借阅系统,营运环境要求低。面对于系统设计还应该以“标准性、安全性、兼容性、高效性、保密性、可维护性”为标准,在着眼于当前实用的基础上,为将来系统的扩展,升级留有余地。软件的开发应能在较长时间内满足学校的发展需要。故还需要满足这几个标准:(1)标准性:系统的软硬件选型都应该采用工业化标准,这样既可以保证系统运行质量又可以分享在此标准上的每一次技术进步。(2)可靠性:由于宠物管理借阅系统重要性,系统的软硬件应均为质量可靠,确保不会由于软硬件故障造成系统运行终止而使整体处于无序混乱状态。(3)安全性:密码设置每个操作员均有自己的密码,可以防止非本系统人员进入本系统,又因每个人的权限不一致,故可以防止越权操作。(4)兼容性:系统的所有软硬件理论上都应有100%的兼容性,用以保证软硬件的可互换性。(5)高效性:由于宠物管理借阅系统的信息量较大,因此系统对信息的处理能力,响应能力都应是快速而有效的,在软件编制过程中应充分考虑到这一点。(6)可维护性:系统软件设计时应采用结构化模块设计,以便于开发和维护,也有利于根据情况随时进行功能调整。同时在系统开发时应该充分考虑到用户的日常维护,使之能简便易行。通过可行性分析研究,认为新系统的开发方案切实可行,可进行开发。第2.3节 系统技术需求2.3.1 软件体系结构(1)C/S结构80年代,数据库应用主要采用C/S两层结构。C/S模式是一种非常成熟的应用体系结构,被广泛应用于各种管理系统中。这种结构在后来近十年的应用中得到了充分发展,并获得很大成功。然后随着信息系统结构的规模和复杂度的日益扩大,C/S结构也逐渐暴露出其缺陷5。由于客户端和服务器端直接相连,服务器不得不消耗部分资源用于处理与客户端的连接工作。因此,当同时存在大量客户端数据请求时,服务器的系统资源可能在应付频繁的连接工作上消耗,也就不能很好地响应数据请求,客户端数据请求的堆积可能导致系统整体效率的大幅降低甚至崩溃。主从式结构使得唯一在线的数据库服务器成为系统可靠性的极大隐患,如果数据库服务器停止工作,整个系统将瘫痪。客户端应用程序的分发工作的繁琐程度令人难以接受。系统开发完毕后,必须为每台客户机安装客户端程序的初始化文件(*.INI)、执行文件以及相关动态连接库文件(*. DLL)等。另外,还必须为每台客户机的ODBC或BDE进行配置。不仅如此,如果系统升级,上述过程必须重复一次。在存储过程的调用中,所有处理过程都在数据库层进行,只是将最终结果返回客户端。这种结构的业务逻辑需采用专用语言开发,很难移植到其它的数据库上去6。(2)B/S结构B/S结构是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构它克服了上述C/S结构的缺陷。B/S结构中,事务处理的逻辑部分从客户机的任务中分离出来,使客户机不再负责处理复杂计算和数据访问等关键事务,只负责显示部分,由服务器来担负更多的工作。用户仅通过浏览器就可向服务器发出请求,服务器处理用户的请求,并将结果返回给用户。采用基于B/S的多层结构,不仅层次结构明了,降低了系统的维护工作量,提高了系统的开放性,尤其是以中间件为基础的B/S多层结构,其核心概念是利用中间件技术将应用的业务逻辑、表示逻辑和数据分为多个不同的处理层,不但具备了系统稳定、安全和处理能力高等特性,同时拥有开放式系统成本低、可扩展性强、开发周期短等优点。另外,浏览器软件有着统一的用户界面、统一的语言格式、统一的传输协议,用户界面简单易学,终端用户几乎无需任何培训,系统管理简单,有很高的可用性7。2.3.2 开发技术JSP(Java Server Pages)是由Sun Microsystems公司于1999年6月倡导,许多公司参与一起建立的一种动态网页技术标准。它的实现是在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以实现建立动态网站所需要的功能,包括操作数据库、重新定向网页及发送E-mail等等。所有程序操作都在服务器端执行,网络上传送给客户端的仅惊是得到的结果,从而对客户浏览器的要求很低。JSP技术被设计成为一个开放的、可扩展的及用于创建动态Web页面的标准。开发人员可以使用JSP技术来创建具有可移植性的Web应用程序。开发结果可以在各种Web服务器和Web应用服务器上运行,而不用考虑具体的开发平台或开发工具。JSP的工作原理:当服务器上的一个JSP页面被第一次请求执行时,服务器上的JSP引擎首先将JSP页面文件转译成一个JavaServlet源文件,再将这个JavaServlet文件编译生成字节码文件,然后通过执行字节码文件响应客户的请求,而当这个JSP页面再次被请求执行时,JSP引擎将直接执行这个字节码文件来响应客户,这也是JSP比ASP速度快的一个原因。而JSP页面的首次执行往往由服务器管理者来执行。如果原始JSP文件被更新,JSP容器将检测所做的更新,在执行之前重新生成Servlet并进行编译8。JSP的优势主要表现在以下几个方面:(1)一处编写随处运行。这是一个程序员的梦想,也是从前的程序员的恶梦,为了在不同的平台间运行,使许多程序员一行行的重写代码。在这一点上java已经给了我最完美的答案它做的要比php更出色,除了系统之外,你的代码不用做一点更改的。(2)系统的多台平支持。我已经在差不多所有平台上见到了一致的java servlet/jsp的Web Server/Application Server。系统它可以让你在任意环境做开发,在任意环境进行系统部署,在任意环境扩展。相比asp/php的局限性是显面易见的。(3)强大的可伸缩性。从只有一个小的jar文件就可以运行servlet/jsp到由多台服务器进行集群和负载均横,到多台Application进行事务处理、消息处理一台服务器到无数以服务器,Java显示了一个巨人的生命力。(4)多样化和功能强大的开发工具支持。这一点与asp很像,java已经有了许多非常优秀的开发工具而且有许多可以免费得到,并且其中的许多已经可以顺利的运行于多种平台之下。如果你细心的使用它们会发现比自己第一面看到它们时的功能要强大的多。2.3.3 Tomcat简介Tomcat是一个免费的开源的Servlet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat被JavaWorld杂志的编辑选为2001年度最具创新的Java产品,可见其在业界的地位。与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(Web Archive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR放到WEB-INF下的lib目录下9。Tomcat应用程序的部署很简单,只需将使用者的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,可以在远程通过Web部署和撤销应用。Tomcat不仅仅是一个Servlet容器,它也具有传统的,Jeb服务器的功能处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。 因为Tomcat的免费并且具有开放性,功能强大。因此,选择了Tomcat作为独立运行Web服务器和JSP引擎10。2.3.4 系统的数据库技术数据库是以数据(数据就是对客观事物的符号表示,是存储在计算机中的模拟客观事物的一系列信息。对于计算机科学而言,数据的含义极为广泛,凡是可存储的信息,如文本、图象、声音等都可以通过二进制编码而形成数据)为对象,指为了满足某种特定应用的需要,按照一定的数据模型在计算机系统中组织、存储和使用数据的数据集合。数据库系统是管理大量的、持久的、可靠的和共享的数据的工具。数据库有以下特点:(1)集成性:数据有两层含义,一个是数据本身,一个是数据之间的关系。集成就是指把数据集中到一起来,按照一定的结构形式进行存储,并通过一系列的机制约束数据 之间的关系,避免数据重复或不合要求。(2)量大性:数据库中存放的数据量一般都比较庞大,不能同时在内存中全部调用,而只能通过外部存储器存储,通常使用大容量的可移动磁盘或硬盘等设备。(3)共享性:指多个不同的用户,为了不同的目的,可以使用不同的语言,通过不同的方式,访问同一个数据库,而访问的范围、可执行的操作会有所区别。数据库系统会提供相应的机制,保证这种共享在有序的条件下进行,可以避免因为同步而造成的错误。(4)持久性:一般来说,数据库中是数据都需要长期保存。在管理平台系统中,Web提供了与客户进行通信联络的有效手段,得用Web技术,可实现Web服务器与数据库系统的连接,完成对数据的处理与查询。用户可以通过操作简单易学的浏览器来查询处理所需要的各种数据。实现Web服务器与数据库的连接最主要的方法之一:是利用中间件技术在两者之间建立连接和通信,如CGI和JSP应用编程接口。Web服务器通过调用CGI程序实现与Web浏览器的交互,即CGI程序接受浏览器发给Web服务器的信息,进行处理后,将相应结果再送给Web服务器,通过Web服务器将信息传送给浏览器。但CGI程序在响应速度和资源利用等方面有较大局限性,客户端每请求一个CGI程序,服务器便打开一个进程,当请求的数量较大时容易引起“瓶颈”现象。因此,开发人员常利用JSP编程来扩展服务器功能,JSP程序占用系统资源少,运行效率较高,但它的编程较CGI程序更为复杂11。MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言。MySQL软件采用了GPL(GNU通用公共许可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。 2.3.5 Structs介绍Struts最早是作为Apache Jakarta项目的组成部分问世运作。项目的创立者希望通过对该项目的研究,改进和提高Java Server Pages、Servlet、标签库以及面向对象的技术水准。Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了减少在运用MVC设计模型来开发Web应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。MVC即Model-View-Controller的缩写,是一种常用的设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。接下来详细讨论struts架构。我们将看到struts是如何清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序过程的。我们还将介绍struts提供的类如何使得开发工作更加简单,这些类包括: 控制程序流程的类、实现和执行程序事务逻辑的类、自定义的标记库使得创建和验证HTML表单更加容易12。Struts体系结构:让我们从MVC角度观察struts框架中的组件框架中三个部分:模型,视窗和控制器。在struts框架中,模型分为两个部分:系统的内部状态、可以改变状态的操作(事务逻辑),如图2.1所示。 Struts-config.xmlActionForm客户浏览器控制器ActionServlet模型 JavaBeanAction视图JSP2.请求填充Form Bean3.将Http请求分发至5.转发Http请求6.Http响应图2.1 Struts的工作原理内部状态通常由一组ActionForm JavaBean表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。 大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的bean调用。比如购物车bean,它拥有用户购买商品的信息,可能还有checkOut()方法用来检查用户的信用卡,并向仓库发定货信息。 小型程序中,操作可能会被内嵌在Action类,它是struts框架中控制器角色的一部分。当逻辑简单时这个方法很适合。 建议用户将事务逻辑(要做什么)与Action类所扮演的角色(决定做什么)分开。视图由JSP建立,struts包含扩展自定义标签库,可以简化创建完全国际化用户界面的过程。struts中,基本的控制器组件是ActionServlet类中的实例servelt,实际使用的servlet在配置文件中由一组映射(由ActionMapping类进行描述)进行定义。 框架中所使用的组件: ActionServlet 控制器 ActionClass 包含事务逻辑 ActionForm 显示模块数据 ActionMapping 帮助控制器将请求映射到操作 ActionForward 用来指示操作转移的对象 ActionError 用来存储和回收错误 Struts标记库 可以减轻开发显示层次的工作 Struts的MVC图如图2.2所示。图2.2 Struts的MVC图2.3.6 Hibernate介绍Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。 Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个核心接口分别加以介绍。 (1)Session接口。Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSesion对象称为用户session。 (2)SessionFactory接口。SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。 (3)Configuration接口。Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。 (4)Transaction接口。Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。 (5)Query和Criteria接口。Query和Criteria接口负责执行各种数据库查询功能。它可以使用HQL语言或SQL语句两种表达方式13。第2.4节 业务流程分析系统设计以前,要对系统需求进行归纳分析,查找出所有的业务主角,确定业务主角后,每个主角的相关活动及流程应清晰地制定出来,最终设计出逻辑视图、用户界面示意图。在进行业务流程设计,需要注意以下事项:(1)调查用户网络环境和配置,使系统能够具有合理可行的系统架构。(2)调查用户偏好和技能水平,这将直接影响到项目开发的深度和用户界面的设计。(3)预测并制定系统的性能指标,为编写测试计划提供依据。业务流程图图例如图2.3所示。图2.3 业务流程图图例网上宠物购买主要是针对实现宠物的网上销售而实现的,主要功能包括用户注册,用户登录,用户个人信息的修改,前台的宠物查看,宠物检索;后台主要实现宠物的增加,编辑功能,另外用户可对满意宠物提交订单,管理员可对订单进行处理等功能。经过认真地调查研究、信息流程分析和数据收集,以及上述功能,可以绘制系统流程图,如图2.4所示。用户信息查看用户信息查看个人信息管理者管理宠物增加宠物信息宠物信息编辑宠物信息删除宠物信息处理订单信息用户查看宠物信息搜索宠物信息添加订单信息编辑订单信息订单信息提交订单信息编辑个人信息图2.4 系统业务流程图第2.5节 系统的数据流程图分析数据流程图是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。管理调查过程中绘制的业务流程图和表格分配图等虽然形象地表达了管理信息中的流动和存储过程,但仍没有完全脱离一些物质要素、数据流程图则进一步舍去物质要素,收集有关资料,用计算机进行信息管理,为下一步分析做好准备。如图2.5所示。图2.5 数据流图图例2.5.1 系统的顶层数据流程系统中有两个实体:用户和管理员。有三个数据流:向系统提交的用户信息和订单信息、从系统获得的宠物信息。如图2.6所示。订单信息宠物信息宠物信息用户信息用户信息订单信息P1网上购物宠物店系统用户管理员图2.6 系统数据流图顶层图2.5.2 系统的一层数据流程图在系统中用户可以查看宠物信息、搜索宠物信息、管理订单信息以及查看和管理个人信息。管理员可以查看用户信息、管理宠物信息以及处理订单。而这些信息都存储在系统的数据库中。流程如图2.7所示。用户P1网上购物宠物店系统P2查看宠物信息P8查看个人信息P9编辑个人信息管理员P4管理订单信息P5查看用户信息P6管理宠物信息P7处理订单信息P3搜索宠物信息 图2.7 系统数据流图一层图2.5.3 增加新宠物模块的流程图增加新宠物模块中,系统管理员可以新增宠物,将新增的宠物信息提交到系统的数据库中。流程如图2.8所示。管理员P2.1增加宠物P2.2修改宠物信息宠物信息D1图2.8 增加宠物模块数据流程图2.5.4 查看宠物信息模块的流程图查看宠物信息模块中,用户查看系统中的宠物信息可以分为两个操作,直接查看和搜索查看。执行这两个操作后会从数据库中得到相应的数据。流程如图2.9所示。用户P3.1查看宠物信息P3.2搜索宠物信息宠物信息D1图2.9 查询宠物模块数据流程图2.5.5 订单信息管理模块流程图订单信息管理模块主要包括用户对自己满意的宠物可添加其订单信息,对自己的订单信息可进行编辑,对满意的订单信息可进行提交。管理员可以对用户提交的订单信息进行处理。该模块的具体数据流程图如图2.10所示。用户P4.1添加订单信息P4.3提交订单信息订单信息D2P4.2编辑订单信息管理员P4.4处理订单信息图2.10 订单信息管理模块数据流程图2.5.6 用户信息管理模块数据流程图用户信息管理模块可以分为两部分:(1)用户可以查看自己的个人信息,并且可以对信息进行编辑,然后提交。(2)管理员可以通过一定的权限查看本系统用户的信息。流程如图2.11所示。用户P5.1查看个人信息P5.2编辑个人信息用户信息D3P5.3查看用户信息管理员图2.11 用户信息管理模块数据流图第3章 系统设计第3.1节 系统功能需求本课题研究的对象是网上宠物购买,网上宠物购买是随计算机网络的发展而发展起来的,根据实际特点,该系统的功能主要有以下几个方面:用户信息管理:主要实现个人用户根据个人信息进行注册的功能,用户根据不同身份权限登录系统,普通用户登录系统后可以对自己信息进行修改,管理员通过身份验证后,可以对用户个人信息进行查看。宠物信息管理:前台主要完成对宠物的查询和查看功能,后台宠物管理主要完成对宠物的增加、查看、查询功能的实现与设计。订单信息管理:主要完成的是用户对订单信息的添加和编辑,以及对订单信息的提交,管理员对用户提交的订单信息进行处理。第3.2节 系统功能模块设计3.2.1 用户信息管理模块(1)用户注册:在网上宠物购买的首页可进行用户注册,用户通过对注册信息的填写,可以拥有自己的帐号。(2)查看用户信息:用户对自己的注册信息可进行查看;管理员具有查看全部用户信息的权限。(3)编辑用户信息:用户登陆后只可对自己的个人信息进行编辑;而管理员可对用户信息进行编辑。3.2.2 宠物信息管理模块(1)添加宠物信息模块:该模块是管理员通过权限身份验证后,才可以操作的,管理员登陆后,可在系统中添加新的宠物信息。(2)编辑宠物信息模块:管理员对系统中的宠物信息可进行编辑,也可删除某宠物的信息。(3)查看宠物信息模块:该模块主要是用户对宠物信息进行查看。(4)搜索宠物信息模块:用户在可系统中输入宠物的相关信息作为搜索条件,经过模糊匹配,系统将列出符合搜索条件的宠物信息。第3.3节 系统总体结构图本系统可以分为3个大模块:用户信息模块、宠物信息模块、订单信息模块。具体结构如图3.1所示。网上宠物购买用户信息管理模块宠物信息模块注册用户模块编辑个人信息模块查看用户信息模块添加宠物信息模块编辑宠物信息模块查看宠物信息模块搜索宠物信息模块订单信息模块添加订单信息模块编辑订单信息模块提交订单信息模块处理订单信息模块图3.1 系统功能结构图第3.4节 数据库设计3.4.1 数据库设计概述从20世纪80年代以来,数据库技术在商业领域的巨大成功刺激了对数据库技术需求的迅速增长,数据库技术也得到了极大的发展,其特征表现在:各种学科技术的内容与数据库技术的有机结合,从而使数据库领域中新内容、新应用、新技术层出不穷,形成了当今的数据库家族。数据库设计有两种不同的方法:以信息需求为主,兼顾处理需求,这种方法称为面向数据的设计方法。以处理需求为主,兼顾信息需求,这种方法称为面向过程的设计方法。数据库设计的3个特点:(1)反复性(Iterative)(2)试探性(Tentative)(3)分步进行(Multistage)。数据库设计的过程(六个阶段) :(1)需求分析阶段(2)概念结构设计阶段(3)逻辑结构设计阶段(4)数据库物理设计阶段(5)数据库实施阶段(6)数据库运行和维护阶段。数据库设计应包含两方面的内容: (1)结构(数据)设计:也就是设计数据库框架或数据库结构数据库模式是各应用程序共享的结构,是稳定的、永久的结构,因此数据库结构设计是否合理直接影响到系统中各个处理过程的性能和质量。(2)行为(处理)设计:即设计应用程序、事务处理等结构特性不能与行为特性分离。静态的结构特性的设计与动态的行为特性的设计分离,会导致数据与程序不易结合,增加数据库设计的复杂性14。 3.4.2 E-R图简述ER图是识别功能模型与数据模型间关联关系的,在主题数据库的抽取和规范化的过程中,采用的是简化的E-R图表示方法,从而避免过繁过细的E-R图表示影响规划的直观和可用性。系统建模阶段的重要工作主要包括主题数据库的抽取、建立,基本表的登记和数据元素的规范化等。在规划工具包中也提供专门的ER图绘制软件,并且与相应的ERWIN、POWERDESIGN等软件有接口,保证数据的可用性和系统的开放性,利于实施阶段的成果展现和使用。构成E-R图的基本要素是实体型、属性以及联系,其表示方法为:实体型:用矩形表示,矩形框内写明实体名。属 性:用椭圆形表示,并用无向边将其与相应的实体连接起来。联 系:用菱形表示,菱形框内写明联系名。本系统的E-R图如图3.2所示。11NNN1N1查看宠物信息添加宠物信息编辑宠物信息宠物信息搜索宠物1111N111添加订单信息编辑订单信息用户1N11查看个人信息编辑个人信息管理员用户信息查看用户信息查看订单信息提交订单信息订单信息处理订单信息图3.2 系统基本ER图第4章 系统的实现第4.1节 网上宠物购买登录模块的实现4.1.1 系统首页网上宠物购买首页主要是提供了用户网站前台的所有功能的展现,其中包括宠物信息的动态显示、会员注册、会员登陆、管理员入口、商品分类导航、宠物搜索等。网上宠物购买的首页实现如图4.1所示。图4.1 系统首页4.1.2 用户登录用户登录模块的部分代码如下:public ActionForward login(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) MemLoginForm memLoginForm = (MemLoginForm) form;MemService service = new MemServiceImpl();ActionForward forward = null;ActionMessages msgs = new ActionMessages();tryMember mem = service.memLogin(memLoginForm.getLoginName(), memLoginForm.getLoginPwd();if (mem!=null)request.getSession().setAttribute(member, mem);forward = new ActionForward(/mer.do?method=browseIndexMer);elseforward = mapping.getInputForward();msgs.add(loginError,new ActionMessage(Constants.ADMIN_LOGINERROR_KEY);saveErrors(request, msgs);catch(Exception ex)logger.info(在执行LoginAction类中的login方法时出错:n);ex.printStackTrace()
展开阅读全文