资源描述
基于web的美食网的设计与实现 学 院: 软件学院 专 业: 软件工程 指导教师: 2014年 9 月基于web的美食网的设计与实现摘要越来越多的美食爱好者希望能够在网络平台上更多地了解到美食方面的信息以及如何更加健康地饮食性。随着计算机网络的飞速发展,美食网已经成为人们日常生活中必不可少的部分,也逛一种简单有效的提供网络用户进行学习和评价的平台,通过可以理解美食,自己学习制作美食,它随时可以发表评论,方便快捷。本论文研究了一种基于数据关联规则的美食网系统。其开发主要包 括后台数据库的建立、后台管理以及前台页面的Web设计。系统使用 Oracle公司以java为核心语言的eclipse开发工具,再结合wampserver建立数据连接关系。利用其提供的各种组件,在短时间内建立数据库,对数据库进行分析与建立页面,不断改进,直到功能基本 实现的可行系统。本文的研究在一定程度上借鉴了中华美食网的经验成果,系统的最终的目的是通过为美食网提供互动交流平台,提高网站的知名度和访问量,从而为广人的美食爱好者提供更多的美食介绍及健康饮食。本设计说明书主要介绍了本课题的开发背景、完成的功能和开发过程,并着重说明了开发设计的思想、技术难点和解决方案。关键词:美食网站;SQL Sever第1页Design and implementation of web-based Food NetworkAbstractMore and more food lovers network platform in hope to be able to learn more information on food and how to more healthy diet sex. Along with the rapid development of the computer network, the food network has become indispensable part of everyday life, is also a kind of simple and effective network users provide learning and evaluation platform, through its can understand food, oneself learn to create food, it can always comment convenient and quick.This paper studies a kind of association rules based on the data of the food network system. Its development mainly include the establishment of the database, background management and the front desk page Web design. Use Oracle company with JAVA system as the core of language Eclipse development tools, combine the wamp establish data connection relationship. Use the various components, in a short time, the establishment of database of database, the analysis and establish asp. net page, improving continuously, until the realization of basic functions feasible system.This paper studies on certain level for reference the experience of the Chinese cuisine nets results, the system is the ultimate goal through the food network provides interactive communication platform, increase your websites popularity and traffic and thus for the majority of the food lovers to provide more dishes and healthy eating.This design specification mainly introduced this topic development background, complete function and the development process, and the focus on the development and design of ideas, technical difficulties and solutions.Keywords: cuisine nets;SQL Sever第2页目录1.引言11.1目的11.2范围11.3缩写说明11.4术语定义11.5项目来源及背景11.6用户的特点21.7系统目标22.可行性分析32.1技术可行性32.2操作可行性33.系统开发的相关技术43.1 J2EE概述43.2 MVC模式简介43.2.1 MVC 工作原理43.2.2 MVC三个核心部件43.2.3 MVC的优点53.3 Hibernate和ORM53.4 Struts技术83.4.1 SERVLET 概述93.4.2 JSP(Java Server Pages)技术103.5 数据库技术的现状和发展124. 系统总体设计134.1系统运行的网络环境134.2系统运行的硬件环境134.3系统运行软件环境144.4功能规格144.4.1角色定义154.4.2浏览用户154.4.3会员用户154.4.4管理用户154.5数据库154.5.1 数据库逻辑结构设计164.5.2 实体联系图164.5.3创建数据库195. 系统的实现235.1 系统登陆界面235.2管理员登陆模块235.3管理员管理245.3.1管理员密码管理245.3.2添加管理员245.3.3 管理用户245.3.4 留言公告管理255.3.5 厨师餐厅管理255.3.6 菜品管理255.3.7 添加菜谱文件和管理加盟名店265.3.8 用户查看美食,公告,留言及更改个人信息27参 考 文 献286.结论29致谢30第II 页 共II页1.引言1.1目的该文档足关于用户对于健身俱乐部系统的功能和性能的要求,重点描述了美食网系统的功能需求,是概要设计阶段的重要输入。本文档预期读者: 设计人员 开发人员 项目管理人员 测试人员 用户1.2范围该文档是借助于当前系统的逻辑模型导出目标系统的逻辑模型的,解决整个项目系统的“做什么”的问题。在这里,没有涉及开发技术,而主要是通过建立模型的方式来描述用户的需求,为客户、用户、开发方等不同参与方提供一个交流的平台。1.3缩写说明UML,Unified Modeling Language(统一建模语言)的缩写,是一个准备好了的建模语言。MVC:Model-View-Control的缩写,表示三S结构体系。1.4术语定义无1.5项目来源及背景越来越多的美食爱好者希望能够在网络平台上更多地了解到美食方面的信息以及如何更加健康地饮食性。迅猛发展并且益成熟的互联网已经影响到我们生活的方方面面,人们真真切切的体会到了网络给人家带来的便捷,互联网也以其独特的优势快速的渗透到越来越多的领域。随着计算机网络的飞速发展,美食网已经成为人们日常生活中必不可少的部分,也是一种简单有效的提供网络用户进行学和评价的平台,通过其可以理解美食,自己学习制作美食,它随时可以发表留言,方便快捷。目前国内美食网站的现状人致为:以大众点评网为代表的社区性美食网站和以饭统网为代表的餐厅预订网站。前者的主要形式是管理员上传餐厅相关信息,网友互动点评餐厅,美食形成网络口碑等,这样形成了点评网信息多而繁杂,流量比较人,受众比较广泛,广告较多的特点;后者餐厅信息齐全且正规,网站以餐厅预订业务为主,这样的订餐网相对比较专业,流量相对较小,受众比较固定定,有很高的用户粘性。1.6用户的特点本系统的用户都足网上用户,包括两类,一是访客,访客可以查看美食,并可以直接在美食网上上留言,如提出问题或意见。另外一类用是逛管理人员,他们可以对美食,用户资料,资讯,留言,餐厅和厨师进行增删改査。1.7系统目标本项目设定的目标如下:系统能够提供友好的用户界面,使操作人员的工作量最大限度的减少;系统具有良好的运行效率,能够达到提高生产率的目的;系统应有良好的可扩充性,可以容易地加入其他系统的应用;平台的设计具有一定的超前性,灵活性,能够适应企业生产配置; 通过这个项目可以锻炼队伍,提高团队的项目管理能力。2.可行性分析2.1技术可行性美食网系统的开发基B/S模型,主要包括前台成用程序的开发以及后台数据库的建立和维护两个方面。对前者要求应具备功能完备、易于使用等特点,而对于后者则要求能建立数据一致性和完整性强、数据安全性好的数据库。基于以上要求,本系统拟采用myEclipse和wamp分别作为前台和后台的开发工具。Eclipse是目前最为成熟的网页开发的工具,它足建立在B/S框架平台上的完全面向对象的系统上。有了Java平台给网站提供了全方位的支持,包括:强大的类库,多方面服务的支持,允许利用多种语言对应用进行开发,跨平台的能力和充分的安全保障能力。wamp则是目前比较流行的数据库管理系统。另外,所有的wamp版本的客户端软件可以在 Microsoft Windows 7、Microsoft Windows 2000 和 Microsoft Windows XP等操作系统上运行,只有服务器组件(如数据库引擎和分析服务器)必须在特定版本的操作系统上运行。因此从技术方面讲开发此系统是可行的。2.2操作可行性该美食网系统具备友好的用户界面,使用方便,易于维护,操作简单易于被用户接受,用户只需熟练操作计算机,并对此系统的使用做简单的了解,即可方便使而且使用此系统可以人大减少管理人员的负担。因此从使用操作方面看,此系统的开发是可行的。3.系统开发的相关技术3.1 J2EE概述 J2EE是美国Sun公司刚刚推出的一种全新概念的模型,与传统的互联网应用程序模型相比有着不可比拟的优势。 目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition,J2ME)、适用于桌面系统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如编写一次、随处运行的特性、方便存取数据库的JDBC(Java DataBase Connectivity)应用程序接口(API, Application Program Interface)技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。3.2 MVC模式简介 模型视图-控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被软件开发界广泛使用。现在已经推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。3.2.1 MVC 工作原理 MVC是一个设计模式,它强制性的使应用程序被分为三个核心部件:模型、视图、控制器。它们各自处理自己的任务。3.2.2 MVC三个核心部件(1) 视图: 视图是用户看到并与之交互的界面。MVC一个大的好处是它能为你的应用程序处理不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个学生列表,作为视图来讲,她只是作为一种输出数据并允许用户操纵的方式。(2) 模型: 模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用像EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回后的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。(3) 控制器: 控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击web页面中的超链接和发送html表单时,控制器本身并不输出任何东西和做任何处理。它只是接受请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。3.2.3 MVC的优点 MVC设计模式是一个很好创建软件的途径,它所提倡的一些原则,像内容和显示互相分离可能比较好理解。但是如果你要隔离模型、视图和控制器的构件,你可能需要重新思考你的应用程序,尤其是应用程序的构架方面。如果你肯接受MVC,并且有能力应付它所带来的额外的工作和复杂性,MVC将会使你的软件在健壮性,代码重用和结构方面上一个新的台阶。3.3 Hibernate和ORMHibernate是JDBC的轻量级的对象封装,它是当前比较流行的对象持久化技术,也就是说,用hibernate可以将一个java对象保存到数据库。它是一个独立的对象持久层框架,和App Server,和EJB没有什么必然的联系。Hibernate可以用在任何JDBC可以使用的场合,例如Java应用程序的数据库访问代码,DAO接口的实现类,甚至可以是BMP里面的访问数据库的代码。从这个意义上来说,Hibernate和EJB不是一个范畴的东西,也不存在非此即彼的关系。Hibernate是一个和JDBC密切关联的框架,所以Hibernate的兼容性和JDBC驱动,和数据库都有一定的关系,但是和使用它的Java程序,和App Server没有任何关系,也不存在兼容性问题。图3.1 Hibernate体系总览图由于Hibernate比较复杂,提供了好几种运行方式。在轻型体系中,应用程序自己提JDBC连接,并自行管理事务。这种方式使用了Hibernate API的一个最小子集。(如下图)图3.2 Hibernate轻型应用体系 在前面解决体系中,对于应用程序来说,所有的底层JDBC/JTA API都被抽象了,Hibernate会替你照管好所有的细节。本文中所用到的就是这种体系。 图3.3 Hibernate全面应用解决体系以下是图中一些对象的定义:1)SessionFactory对属于单一数据库的编译过的映射文件的一个线程安全的,不可变的缓存快照。它是Session的工厂,是ConnectionProvider的客户。可能持有一个可选的二级数据缓存,可以在进程级别后集群级别保存可以在事务中重用的数据。2)Session 会话Session是生命周期的单线程对象,代表应用程序和持久层之间的一次对话。封装了一个JDBC连接,也是Transaction的工厂。保存有必需的(第一级)持久化对象的缓存,用于遍历对象图或通过标识符查找对象。3)Configuration 类Configuration类负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。4)事务(Transaction)事务也是生命周期短的单线程对象,应用程序用它来表示一批工作的原子操作。是底层的JDBC,JTA或者CORBA事务的抽象。一个Session某些情况下可能跨越多个事务。对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。3.4 Struts技术Struts是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开放源码framework。采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。Struts由一组相互协作的类、Serlvet以及Jsp TagLib组成。基于Struts构架的web应用程序基本上符合JSP Model2的设计标准,可以说是MVC设计模式的一种变化类型。Struts是一个web framework,不仅仅是一些标记库的组合。但 Struts 也包含了丰富的标记库和独立于该框架工作的实用程序类。Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。在模型层,Struts可以很容易的与数据访问技术相结合,包括EJB,JDBC和Object Relation Bridge。在视图层,Struts能够与JSP, Velocity Templates,XSL等等这些表示层组件相结合。Structs的主要功能是:(1)包含一个controller servlet,能将用户的请求发送到相应的Action对象。(2)JSP自由tag库,并且在controller servlet中提供关联支持,帮助开发员创建交互式表单应用。(3)提供了一系列实用对象:XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息。3.4.1 SERVLET 概述SERVLET是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 SERVLET是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,SERVLET由Web服务器进行加载,该Web服务器必须包含支持SERVLET的Java虚拟机。SERVLET的主要功能在于交互式地浏览和修改数据,生成动态Web内容。这个过程为:客户端发送请求至服务器端;服务器将请求信息发送至SERVLET;SERVLET生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;服务器将响应返回给客户端。SERVLET是使用JAVA SERVLET应用程序设计接口(API)及相关类和方法的JAVA程序。除JAVA SERVLET API,SERVLET还可以使用用于扩展和添加到API的JAVA类软件包。SERVLET技术的特点:SERVLET 可以处理客户端传来的HTTP请求,并返回一个响应。SERVLET 是一个JAVA 的类,JAVA语言能够实现的功能,SERVLET基本上都能实现,总的来说,SERVLET有一下优势:(1)可移植性:因为SERVLET由JAVA开发并符合规范定义和广泛接受的API,它可以在不用的操作系统平台和不同的应用服务器平台下移植。(2)功能强大:SERVELT可以使用JAVA API核心的所有功能,这些功能包括WEB和URI访问、图像处理、数据压缩、多线程、JDBC、RMI和序列化对象等。(3)安全:有几个不同层次为SERVLET的安全提供了保障。首先,它是用JAVA编写的,所以它可以使用JAVA的安全框架;其次,SERVLET API被实现为类型安全的;另外,容器也会对SERVLET的安全进行管理。(4)简洁:SERVLET代码面向对象,在封装方面具有很大的优势。(5)集成:SERVLET和服务器紧密集成,它们可以密切合作完成特定的任务。此外,SERVLET还有模块化、扩展性、灵活性、高效耐久的有点。3.4.2 JSP(Java Server Pages)技术JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。 JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Servlet一样,是在服务器端执行的,通常返回给客户端就是一个HTML文本,因此客户端只要有浏览器能浏览。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。JSP技术的优点:(1)一次编写,到处运行。除了系统之外,代码不用做任何更改。 (2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/.net的局限性是可见的。(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。 (4)多样化和功能强大的开发工具支持。Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下 (5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。 JSP技术提供了一种简单快速的方法来创建显示动态生成内容的Web页面。也就是在MVC中充当V(View)的角色。由业界处于领先地位的Sun公司制定了相关的JSP技术规范,该规范定义了如何在服务器和JSP页面间进行交互,还描述了页面的格式和语法。JSP页面使用XML标签和scriptlets(一种使用Java语言编写的脚本代码),封装了生成页面内容的逻辑。它将各种格式的标签(HTML或者XML)直接传递回响应页面。通过这种方式,JSP页面实现了页面逻辑与其设计和显示的分离。JSP技术是Java系列技术的一部分。JSP页面被编译成servlet,并可能调用JavaBeans组件(beans)或Enterprise JavaBeans组件(企业beans),以便在服务器端处理。因此,JSP技术在构建可升级的基于web的应用程 序时扮演了重要角色。 JSP页面并不局限于任何特定的平台或web服务器上。JSP规范在业界有着广泛的适应性。 JSP技术是行业协作的结果,它的设计是开放的,符合行业标准的,并支持绝大多数的服务器、浏览器和相关工具。由于使用可重用的组件和标签取代了对页面本身脚本语言的严重依赖,JSP技 术大大加快了开发的速度。所有JSP的实现均支持以Java编程语言为基础的脚本语言,它有与生俱来的可适应性,支持复杂的操作。3.5 数据库技术的现状和发展 数据库技术是60年代末出现的一门计算机软件技术,到现在虽然只有三十多年的历史,但在理论和时间上都已经趋于成熟,使我们能够方便的使用。数据库技术是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。 MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。它具有数据库系统的通用性:(1)数据库管理系统。我们知道,所谓的数据库就是一些结构化的数据的联合体,要提供对这些数据的存取、增加、修改、删除或更加复杂的数据抽取等操作,需要有一个支撑系统,这就是数据库管理系统(DBMS),MySQL 完全具有这方面的功能。(2)关系型数据库管理系统。在数据库的发展历程中,曾出现过多种不同形式的数据库系统,但关系型数据库管理系统(RDBMS)以其优越性而被广为采用,象现在几种广泛使用的数据库全为关系型数据库。同样,MySQL也是关系型的数据库系统,支持标准的结构化查询语言(Structured Query Language)。MySQL的特性包括: (1) 使用C和C+编写,并使用了多种编译器进行测试,保证源代码的可移植性。 (2)为多种编程语言提供了API。这些编程语言包括C、C+、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。 (3)优化的SQL查询算法,有效地提高查询速度 (4)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。 (5)提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。 (6)提供用于管理、检查、优化数据库操作的管理工具。4. 系统总体设计4.1系统运行的网络环境 无论是客户端的用户还是管理端的管理用户都可以通过网络登录到本系统中。用户通过网络注册会员填写并查询相关信息。管理端的管理员再对会员的信息进行添加、修改和删除操作。管理端的系统管理员需要设置管理端的用户以及相应的权限。它们的关系如图1-1所示。图4.1 系统关系图4.2系统运行的硬件环境本系统的硬件环境如下:客户机:普通PC CPU: P41.8GHz 以上 内存:256MB以上 能够运行IE5.0以上或者Netscape4.0以上版木的机器 分辨率:推荐使用1024X768像素 Web服务器 CPU: P41.0GHz 内存:1G以上 硬盘:80GB以上 网卡:KMb/s速度数据库服务器 CPU: P42.0GHZ 内存:1GB以上 硬盘:80GB以上4.3系统运行软件环境本系统的软件环境如下: 操作系统:UNIX/Linux/Windows2000或以上版本 数据库:wamp 开发工具包:Eclipse Web 服务器:11S5.0 浏览器:IE6.0以上4.4功能规格采用面向对象分析作为主要的系统建模方法,使(UnifiedModeling Language)作为建模语言。UML为建模活动提供了从不同角度观察和展示系统的各种特征的方法。在UML中,从任何一个角度对系统所作的抽象都可能需要几种模型来描述,而这些来自不同角度的模型图最终组成了系统的映像。用例描述角色(用户、外部系统以及系统处理)是如何与系统交互来完成工作的。用例模型提供了一个非常重要的方式来界定系统边界以及定义系统功能。同时,该模型将来可以派生出动态对象模型。设计用例时,我们遵循下列步骤:1)识别出系统的角色。角色可以足用户、外部系统,甚至是外部处理,通过某种途径与系统交互。重要的是着重从系统外部执行者的角度来描述系统需要提供哪些功能,并指明这些功能的执行者(角色)是谁。尽可能地确保所有角色都被完全识别出来。2)描述主要的用例。可以釆取不断地问白已“这个角色究竟想过系统做什么?”来准确地描述用例。3)重新审视每个用例,为它们下个详尽的定义。4.4.1角色定义角色或者执行者指与系统产生交互的外部用户或者外部系统。4.4.2浏览用户浏览用户足指直接输入网站地址后进行网站浏览,留言的用户,他们可以注册成为会员。4.4.3会员用户会员用户足指在这个网站中通过客户端提交信息注册成为会员的人员,这个角色除参与浏览用户的用例外,还可以修改个人信息。4.4.4管理用户管理用户是指管理端的用户,此角色派生两个子类,管理员和系统 管理员,管理员足指在美食门户网站后台中通过管理端参与网站浏览,留言的人员。系统管理员是指对美食门户网站后台系统进行相关设置、进行系统维护的人员,他也是通过管理端登录对管理端的用户进行设置,分配权限等。如图1-2所示。管理员管理用户具体说明如下: 会员管理。会员的注册、个人信息的修改、会员的删除、变更和查询。 美食管理。美食的添加、删除、修改和查询功能。 餐厅管理。餐厅添加、删除、修改和查询功能。 厨师管理。厨师的删除和查询功能。 留言管理。留言的添加、删除、修改和查询功能。 系统数据管理。 主要实现系统的数据维护,包括系统的数据备份和数据维护等。 4.5数据库 数据库是一个与系统产生交互的外部系统,这个角色负责系统的数据查询、增加、删除和修改等操作。4.5.1 数据库逻辑结构设计本系统的用户有2类:管理员和用户。由于管理员和用户的权限和操作功能大不相同,因此在本系统中需要分别进行数据记录。管理员数据实体:管理员的登录帐号、姓名和密码;用户数据实体:用户号、用户名、密码、性别、地址等;4.5.2 实体联系图实体联系图:简记E-R图是指以实体、关系、属性三个基本概念概括数据的基本结构,从而描述静态数据结构的概念模式。在系统设计的开始,我首先考虑的是如何用数据模型来定义数据库的结构与语义,以对现实世界进行抽象。目前广泛使用的数据模型可分为两种类型,一种是独立十计算机系统的“概念数据模型”,如“实体联系模型”;另一种是直接面向数据库逻辑结构的“结构数据模型”。在本系统中采用“实体联系模型”(ER模型)来描述数据库的结构与语义,以对现实世界进行第一次抽象。ER模型直接从现实世界抽象出实体类型及实体间联系,然后用ER图来表示数据模型。它有两个明显的优点:接近于人的思维,容易理解;与计算机无关,用户容易接受。但ER模型只能说明实体间语义的联系,不能进一步说明详细的数据结构,它只是数据库设计的第一步。E-R图是直观表示概念模型的工具,它有三个基本成分:(1) 矩形框,表示实体类型(考虑问题的对象);(2) 菱形框,表示联系类型(实体间的联系);(3) 椭圆形框,表示实体的属性。根据对数据项与数据结构的分析,设计出能够满足系统需求的各种实体,及它们之间的关系,为后面的逻辑结构设计打下基础。本系统包括的实体有学生实体,教师实体,课程实体,班级实体等。各实体属性图:密码用户id用户 用户名性别图4.2 用户主要关系图编号密码管理员管理名美食图4.3 管理员主要关系图描述美食名图片Id价格图4.4 美食主要关系图第 17 页 共 29 页 留言题目内容留言号留言用户发布者内容题目公告号公告留言图4.5 公告主要关系图图4.6 留言主要关系图第 30 页 共 29 页 4.5.3创建数据库 本系统采用mysql创建数据库,连接数据库建立10张数据表。图4.7 所有表 如图4.8图4.17图4.8 管理员表图4.9 餐厅表图4.10 美食类别表图4.11 厨师表图4.12 文件表图4.13 公告表图4.14 美食表图4.15 留言表图4.16 名店加盟表图4.17 用户表5. 系统的实现5.1 系统登陆界面 启动Tomcat服务器,在浏览器里输入相应的地址,进入系统主界面,也就是首页,如图5.1:图5.1 美食网首页5.2管理员登陆模块在首页的右下角可以点击进入管理员登陆见面,如图5.2:图5.2 管理员登陆界面5.3管理员管理5.3.1管理员密码管理 管理员可以再密码修改中修改自己的密码。如图5.3:图5.3 管理员更改密码5.3.2添加管理员管理员可以通过管理员维护添加管理员。如图5.4:图5.4 添加管理员5.3.3 管理用户管理员可以管理用户。如图5.5:图5.5 管理用户5.3.4 留言公告管理管理员管理留言和公告。如图5.6:图5.6 留言公告管理5.3.5 厨师餐厅管理管理员管理厨师和餐厅。如图5.7:图5.7 厨师餐厅管理5.3.6 菜品管理管理员管理菜品和菜品类型。如图5.8:图5.8 菜品管理5.3.7 添加菜谱文件和管理加盟名店管理员上传菜谱相关文件,管理加盟名店。如图5.9:图5.9 添加菜谱文件和管理加盟名店5.3.8 用户查看美食,公告,留言及更改个人信息如图5.10:图5.10 用户查看美食,公告,留言及更改个人信息参 考 文 献1 赵生慧.Java面向对象程序设计M.北京.高等教育出版社,2007.2 埃克尔.Java编程思想.陈浩鹏译M.北京.机械工业出版社,2007.3 王咏梅.Eclipse从入门到精通M.北京.电子工业出版社,2008.4 耿祥义.Java大学实用教程M.北京.清华大学出版社,2009.5 耿祥义.Java课程设计M.北京.清华大学出版社,2008.6 王鹏.Java Swing图形界面开发与案列详解M.北京.清华大学出版社,2008.7 黄嘉辉.Java王璐程序设计M.清华大学出版社,2002.8李刚.疯狂Java讲义M.电子工业出版社,2012.9 王宜贵.软件工程M.机械出版社,2008.10 袁然.Java案例开发集锦M.电子工业出版社,2005.11 聂哲,袁梅冷.Java面向对象程序设计M.高等教育出版社,2005.12 张利国.Java实用案例教程M.清华大学出版社,2003.13 Douglas Bell,Mike Parr.Java程序设计.袁毅等译M.中国水利电出版社,2006.14张海藩.软件工程M.清华大学出版社,2009.6.结论本文用当前成熟的web开发框架Struts和Hibernate技术实现了一个实用的美食网系统。实现时主要用到了MVC模型,使得各模块具有相当的独立性,因此系统的可重用性也比较高。使用Java语言作为开发语言,使得程序具有很强的可移植性。程序中注释写得尽量规范,因此可读性与可维护性也比较好。本系统方便了管理员管理各项信息,方便了用户查看各地美食,选择自己喜欢的餐厅和厨师;也方便了管理员进行各项管理。界面简洁美观,操作简单。通过此次毕业设计,是我深刻的理解了理论与实践相结合的重要性,只有在实践中学习才能提高自己的技能水平,今后我会继续努力,不断提高自己。通过这次做毕业设计发现自己的看法有点太片面。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识还比较欠缺。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。在此要感谢宋文爱老师和李光辉老师对我悉心的指导,感谢老师给我的帮助。在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方 式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心, 相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。这也是我们从一个学生走向社会的一个转折。致谢 感谢这篇论文所涉及到的各位学者。本文引用了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。感谢我的同学和朋友,在我写论文的过程中给予我了很多素材,还在论文的撰写和排版过过程中提供热情的帮助。由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和学友批评和指正!
展开阅读全文