基于jsp的高校网上订餐系统设计与实现(项目报告+答辩PPT+源代码+数据库+截图+部署视频)

项目报告

基于jsp的网上订餐系统

随着社会不断的更替发展,科技日新月异,人们的饮食生活方式以及作息等等方面都发生了翻天覆地的变化。发展到现今社会,人们的饮食方式不再局限于传统的在饭店中就餐,越来越多的人开始使用网上订餐,网上订餐已经成为当前十分流行的就餐方式。

本课题剖析当前形势下的订餐系统以及当前已开发出的订餐系统,例如美团外卖,饿了么软件,分析各个软件的长处,结合自身所学习的知识,开发出的基于B/S结构的网上订餐系统。网上订餐系统的开发,使得人们可以足不出户尽享美食,而且迎合了当今时代的发展潮流。网上订餐系统具有良好的用户界面,响应迅速,可维护性好,操作简便等优点。

网上订餐系统开发的过程中使用的开发平台是当今比较流行的平台MyEclipse,使用的服务器也是人们普遍使用的Tomcat服务器,主要编程语言采用的是jsp语言和java语言,在设计开发网上订餐系统的同时,充分考虑了系统的可扩展性和兼容性,可维护性,所开发出的网上订餐系统可以满足人们对于日常订餐的需要。

网上订餐系统将系统的主要使用操作人员设置分成网上订餐系统的后台管理员和普通用户两大类,系统所具有的主要功能模块为:查看菜品的信息模块,查询菜品信息的模块,注册成为系统会员模块,我的购物车模块,我的订单模块,系统留言板模块,系统后台管理模块。本文首先介绍了课题的背景与意义,之后从系统分析,数据库的设计,系统的功能与实现,系统测试这些方面来对系统进行分析测试。

网上订餐,JSP,MyEclipse,B/S结构

目  录

摘  要............................................................. I

Abstract.......................................................... II

第一章  绪论....................................................... 1

1.1课题背景与意义.............................................. 1

1.2开发工具及技术.............................................. 1

1.2.1开发工具............................................... 1

1.2.2 JSP技术............................................... 2

1.2.3 B/S模式分析........................................... 3

1.3软硬件需求.................................................. 4

第二章 系统分析.................................................... 5

2.1可行性分析.................................................. 5

2.1.1技术可行性............................................. 5

2.1.2经济可行性............................................. 5

2.1.3操作可行性............................................. 5

2.1.4法律可行性............................................. 5

2.2用户的需求分析.............................................. 6

2.3系统的功能模块图............................................ 6

2.4功能模块分析................................................ 7

2.5设计的基本思想.............................................. 9

2.6性能需求.................................................... 9

2.6.1系统的安全性........................................... 9

2.6.2数据的完整性.......................................... 10

2.7界面需求................................................... 10

第三章 数据库设计................................................. 12

3.1数据库的分析与设计......................................... 12

3.1.1数据库的概念结构设计.................................. 12

3.1.2数据库的逻辑结构设计.................................. 15

3.1.3数据库的连接原理...................................... 18

3.2中文乱码问题处理........................................... 19

3.3数据流程图................................................. 20

3.3.1系统顶层图............................................ 20

3.3.2系统0层图............................................ 20

3.4时序图..................................................... 21

3.5 数据字典................................................... 22

3.5.1 数据结构............................................. 22

3.5.3 数据流............................................... 23

3.5.4 数据存储............................................. 23

第四章 系统功能的设计与实现....................................... 25

4.1用户注册与登录............................................. 25

4.2管理员首页................................................. 27

4.3管理员功能模块............................................. 27

4.3.1留言模块管理.......................................... 27

4.3.2用户信息管理.......................................... 28

4.3.3菜品信息管理.......................................... 28

4.3.4订单信息管理.......................................... 29

4.4用户订餐功能............................................... 30

第五章 系统测试................................................... 32

5.1系统测试目的与意义......................................... 32

5.1.1 网上订餐系统的测试目标............................... 32

5.2测试过程................................................... 32

5.2.1主页面及系统后台的测试................................ 32

5.2.2测试模块及案例........................................ 37

5.2.3系统性能测试.......................................... 42

5.2.4缺陷分析.............................................. 43

5.3测试结果................................................... 44

总结与展望........................................................ 45

参考文献.......................................................... 46

致  谢.......................................................... 47

外文文献.......................................................... 48

中文翻译.......................................................... 58

第一章  绪论

1.1课题背景与意义

自新世纪以来,我国经济发生翻天覆地的变化。中国经济发展迎来空前巨大的机遇与挑战,世界性的发展交流在这三十年较近四十年的时间中整体性上升发展,东西文化的碰撞,不断为国民经济的发展注入新鲜血液。以服务业为代表的第三产业不仅满足了消费者的需求,而且为他们选择的多样化提供了诸多便捷。饮食行业成为商家提高利润的突破口,物质文化的不断满足之后必定是精神世界的不断丰富,第三产业进入繁荣时期。但是饮食行业的就餐方式依然落后,传统的去实体店就餐已经不能满足年轻人和大众的要求。

中国是一个自古以来就喜欢和看重饮食的国家,从古至今。当代社会人们在大中型城市的生活节奏不断加快。许多人或是忙于工作,或是忙于学业,无法静静的坐下来品尝美味的佳肴。随着21世纪的到来,电子商务的潮流冲击了中国的思想文化,人们越来越倾向于网上购物和网络消费,网上订餐这种新潮的就餐方式已然成为了现代的主流消费方式,被人们广泛认同。

综合比较饿了么,美团等市面上已经存在的网上订餐软件,现今的订餐软件功能十分强大,在借鉴学习优秀的订餐软件的基础上开发出了一个网页版的网上订餐系统。经过考查餐饮行业的发展现状发现,我国以大中型城市为代表的餐饮行业中,网上订餐迅速崛起,随着餐饮行业规模的不断扩大,提供多样化订餐方式是对传统酒店行业改革的主要特点。而传统的实体点餐已经不能适人们快节奏的生活方式,所以要想订餐行业长期发展,必须运用新型订餐模式,解决传统订餐方式的各种弊端。

1.2开发工具及技术

1.2.1开发工具

 本课题开发主要使用MyEclipse和汤姆猫后台服务器结合开发,开发阶段主界面前端主要使用JSP技术进行开发,下面对以上列出的几种技术进行简单介绍与分析。

1.2.1.1 MyEclipse

MyEclipse是一个IDE环境下比较常用的开发软件,广泛用于J2EE和Java的开封。其功能十分强悍,可以对开发软件进行调试,提高调试或开发效率。其可以直接地翻译源文件,十分省心省力,并且对各类源文件都基本支持,具有健壮性,可兼容性等优势,可以轻松的进行JAVA WEB开发,具有可视化编辑器和快捷操作栏,同时还可以优化JAVAEE开发,方便的找到关键技术的解决方案,同时MyEclipse也全面支持各种插件,支持个性定制和扩展化,个性化功能。对于本系统关键技术采用JSP的网上订餐系统来说,MyEclipse无疑是最适合的,开发最便捷的开发平台。

1.2.1.2 Tomcat

    Tomcat是一个主要由Apache、Sun公司共同努力,开发的服务器,同时它是一个开源的,免费给社会大众使用的服务器,它是开发JSP应用程序,应用于MyEclipse平台的最佳服务器,十分适合个人开发以及中小型企业以及用户比较零散的情况下使用,可以这样理解,汤姆猫服务器就像一个中介,通过使用它来对HTML页面进行响应,汤姆猫服务器是阿帕奇服务器的一个延伸扩展软件,当前最新版的汤姆猫服务器版本为9.0.0,本系统主要采用汤姆猫服务器部署已经开发好的网上订餐系统。

1.2.2  JSP技术

JSP最早是由SunMicrosystems公司提出的,经过其推广,很多的计算机和软件公司逐渐共同参与开发。其主要是通过在HTML文件(*.htm,*.html)中嵌入Scriptlet和JSP标签来实现的。这样,内嵌的Java程序就可以生效,对数据库做出请求、或者启用E-mail等。JSP大概出现上世纪末,SunMicrosystems公司希望利用它来建立动态性的网站,并利用其兼容性和扩展性,来扩大平台应用。从实际效果来看,JSP技术的出现使Web的建设和设计创新不断。其特点大概有以下几点:
依托JSP技术,工程技术人员可利用XML或HTML标识来对web等页面进行修改或推翻设计。这些页面上的内容也可以依托JSP来设计或实现。另外,网站服务器中的内容将被储存在Servlet和JavaBean中,同时还体现在脚本中。如此一来,利用JSP编程语言设计的服务器,其内容发送的信息和要求都可以通过JSP索引来解释,或者根据其脚本来设计或建立。当然,这些最终的内容也会通过HTML或XML形式反馈到浏览器中。通过这样的方式,能够使源代码的编写者维护自己的专利和权益,也可以保证web页面的兼容性和可拓展性。
一般来说,单独的JSP页面不发生复杂的数据分析和处理,其一般用于爬虫或索引提炼攫取数据。
    JSP是基于Java编程语言的,其内部具有tags和scriptlets,可以用于储存动态页面运作需要的一套程序方式。另外,JSP将动态页面运作需要的一套程序方式与静态的网页设计分离,这样的模块分块使JSP具有兼容和扩展性,开发性更高。说到底,JSP技术能实现动态的页面控制,并且可以让页面运作程序与静态的页面分离。
JSP页面由两部分组成,分别为HTML和Java代码。一般来说,上游的服务器如果收到来自外部请求或信息,会对Java代码进行分析或运算处理,从而以HTML的方式回馈到网页浏览器中。Java Servlet是其基础,规模较大的JSP项目开发一般依托Java Servlet和JSP这两者。在技术上,JSP具有了Java特有的容易理解、容易上手、适用性广,不挑平台、安全性高等特点。这些优势保证了其在整个因特网中广为使用。在上世纪末出现后,如今不少公司都使用其服务器,如比较有名的IBM、Oracle、Bea,其逐渐成为电子商务软件开发的“宠儿”。,
具体来看,JSP有如下的显而易见的优势:
(1)可以多次的复用。可在各类系统内嵌套使用,而不需要重新编写代码。这是其优于PHP之处。
(2)另外,其兼容性比较好。基本不挑平台,常见的平台都能兼容和开发、应用、扩展。这刚好与PHP的不可拓展性互补。 
(3)适用性广。无论是war小文件或多层次的平台以及服务器,其都能兼容和运行。对各类规模不一的平台都能进行数据分析、处理,反馈,其展现出极强的适应能力。
(4)可依托种类丰富、功能优异的工具。经过接近20年的发展,JSP如今已拥有了很多开发工具,这些工具功能强大,几乎覆盖了程序开发和设计方方面面,并且几乎不需耗费金钱即可得到,为开发人员提供了便利性。

1.2.3  B/S模式分析

C/S模式是由Client、Server和middleware构成的。其中Client主要用于客户与标准组件进行信息的交互和传递。Server主要是集中对数据库资源进行管理,当有多个请求同时需要某资源时,可以进行优化和分配。Middleware是在用户与服务器之间起到第三者的连通作用,通过其连接,可以让请求和信息在用户与服务器之间顺畅流通。
B/S与C/S模式最大的不同是用户端。从外在使用上看,B/S一般无须在计算机上安装专用的客户端,不需要通过专用的程序与服务器发生连接。其连接一般通过标准化设定的浏览器即可实现。这样可以避免安装客户端的繁琐,可以释放用户的硬盘空间,让用户电脑界面更加美观清晰,使用效果更佳。
从操作体验上来说,在C/S模式下,用户想要熟悉地操作,与服务器发生请求和信息交互,那么需要对安装的用户端有一定掌握,对其界面和基本操作要比较熟悉。而对于B/S模式来说,由于浏览器的界面是经标准化的,操作方式和按钮大同小异,用户无须耗费太多的时间成本即可轻松上手。从系统安全和日常维护来说,B/S无疑更省事。
从目前的发展来看,B/S已经具备了网上公开信息功能,这是在MIS上拓展而来的。而C/S暂时实现不了这一功能。在预约挂号软件的应用中,运用这种网上公告和发布功能,可以减少医院纸质材料的打印和派发,也使其运营效率提升。 
从以上B/S与C/S的比对,可以发现在MIS平台中,B/S具有不可比拟的优势。因此本课题设计中选用了B/S架构。B/S架构图如下图1.1所示:

图1.1 B/S架构图

1.3软硬件需求

硬件需求:

CPU:Pentium以上计算机

内存: 512M以上

软件需求:

操作系统版本:Windows XP /vista/Win7

开发工具:MyEclipse 6.5

后台服务器:Apache Tomcat 6.0

开发语言:Java

浏览器:IE6.0

开发过程中使用的机器配置:

CPU:intel酷睿i5

内存: 8G

软件需求:

操作系统版本:Win7

开发工具:MyEclipse 6.5

后台服务器:Apache Tomcat 6.0

开发语言:Java

浏览器:360浏览器

2.1可行性分析

在我们着手开发一个新系统时,我们或多或少会遇到各种限制,诸如时间上的限制或是资源上的限制。因而我们必须在着手开发项目之前进行一系列的可行性分析,进行可行性分析并不是浪费时间和资源,而是对时间和资源进行一个长远的规划,规避这些不必要的系统开销,具体的,我们从以下这几个方面:开发所使用的技术的可行性,开发经费消耗的经济的可行性,开发完成后和过程中的操作的可行性,设计开发过程中的法律可行性几个方面来进行详细的阐述。

2.1.1技术可行性

在进行系统开发的第一步,便是对本系统进行技术可行性的分析,本系统的所采用的开发平台是MyEclipse,本系统所采用的开发数据库是MySQL,主要采用JAVA语言和JSP语言来完成系统的绝大多数功能,在太原理工大学学习期间,我们学习了WEB-JSP技,JAVA技术,数据库系统概论,了解了MYSQL数据库的使用原理和操作规范,由此分析,技术可行性分析通过。

2.1.2经济可行性

 步入21世纪,正是一个各种科技创新日新月异的时代,信息化的管理,信息化的系统使得人们的生活方式发生了改变,同样信息化使得网上订餐系统可以在原来老旧的订餐方式发生改变,可以为采用网上订餐系统的企业带来巨大收益;同时,网上订餐系统对硬件的要求斌并不是十分的严苛,普通用户和中小型企业完全都可以负担的起,开发成本较低,对服务器的要求也并不是很高,开发网上订餐系统所带来的高效率和便捷实用性将远大于开发网上订餐系统所投入的成本和心血,而且可维护性和可扩展性都十分健康良好,将会给系统使用者带来很大的经济收益,据此分析,经济可行性分析通过。

2.1.3操作可行性

在开发该系统完成前,分析开发完成后的系统,可以看出网上订餐系统在输入添加界面多采用条形框和下拉框形式,操作起来简单方便,对操作人员的技术要求很低,同时界面十分简单,十分容易上手,只要对网页有一定了解会操作微软windows系统的人员均可以轻松,愉快的使用本系统,即使开发人员零基础,也可以简单教学之后就可以熟练操作本系统,不但如此,本系统的功能结构操作一目了然,采用简约的理念,来设计本系统的操作界面,简易便捷,由此而言,得出结论,网上订餐系统在操作上是可行的,操作可行性通过。

2.1.4法律可行性

本人开发网上订餐系统过程中所使用的开发平台MyEclipse,数据库Mysql都使用的是正版软件,是官方供给使用学习者使用的开源免费软件,同时代码都是经过自己独立思考所编写的,并且都是自己学习和运用到实际项目中,同时引用的部分都清晰的给出了所引用的作者,所引用的部分出自的文章,所以总得来说不存在任何侵权问题,因而满足法律可行性满足的要求,法律可行性通过。

综合以上的分析,在技术,经济,操作,法律可行性几个方面都进行了分析,并且分析结果都通过,由此可以得出,基于jsp的网上订餐系统的开发是完全可以实现的,我们可以对网上订餐系统进行开发。

2.2用户的需求分析

用户的需求分析对于网上订餐系统的开发是十分重要的,清楚明确的需求分析对于条理地开发系统起到至关重要的作用。

综合分析本系统所面向的受众群体,具体的对用户的需求分析如下:

对于系统普通用户:

系统普通用户希望系统具有良好的界面,简洁的操作,并且系统响应时间短,可以简单快速的注册成为系统会员,对所选中的商品进行下订单,购买等操作。并且可以在下订单之后清楚地看到订单的明细信息,而且还可以与系统后台管理员进行留言互动。

对于系统后台管理员:

系统后台管理员希望系统具有良好的后台界面,操作简单,可维护性好,并且可以兼容不同的平台和浏览器,系统响应时间短,具有健壮性和稳定性,可以快速,方便地对菜品信息,会员信息,留言信息等等系统数据库信息进行管理和对整个系统进行维护。

2.3系统的功能模块图

 系统的功能模块图可以清楚的在宏观上看清整个系统的功能,了解系统的大致功能模块,功能模块图可以描绘如图2.3所展示:

 网上订餐系统主要的操作人员模块划分可以主要划分为用户的模块和管理员的模块两大模块。

 对于用户模块,用户可以进行网上点餐,或是注册成为会员。

 对于系统管理员,网上订餐系统的后台管理人员可以进行对已经买单的用户进行信用的评价,对交易完成后的订单进行操作和查看。例如增加或删除或编辑等;还可以对菜品信息管理,例如增加或删除或编辑等。还可以对用户信息管理,例如增加或编辑或删除用户的信息;还可以对菜品类别管理,例如增加或编辑或删除菜品类别的信息,具体的用用系统功能模块图进行表述,可以描述成为以下图2.3样式:

     在对上述总体的系统功能模块进行分析之后,我们进行进一步的细化,细化用户点餐功能。用户点餐功能又可以进一步分为菜品查询,查看购物车,查看订单,进行留几大功能模块,具体的功能模块图如下2.1所展示:

图2.1系统功能模块图

在对上述总体的系统功能模块进行分析之后,我们进行进一步的细化,细化用户点餐功能。用户点餐功能又可以进一步分为菜品查询,查看购物车,查看订单,进行留言几大功能模块,具体的功能模块图如下图2.2所示:

图2.2系统功能模块图

2.4功能模块分析

 接下来便开始对系统进行总体的功能模块模块分析,根据以上的对各个可行性的各个方面都综合进行的深入详细分析,该系统在功能模块上可以划分为以下几个宏观的功能模块系统。

  1. 用户信息管理

 该模块主要的功能由系统的管理员完成,管理员进入到系统的后台对在前台进行会员注册的用户进行删除,查看用户信息两大功能模块进行操作,具体的可采用例图进行表述,可以描述成为以下图2.3样式:

             图2.3用户信息管理的用例图

  1. 订单信息管理功能

 该模块主要的功能由系统的管理员完成,管理员进入到系统的后台对已经在前台下单的用户的订单进行查看,对已经在前台下单的用户的订单进行受理,对已经在前台下单的用户的订单进行删除,具体的用用例图进行表述,可以描述成为以下图2.4样式:

图2.4订单信息管理功能用例图

  1. 菜品信息管理功能

 该模块主要的功能由餐馆用户完成,餐馆用户进入到系统的后台,对本店想要新增的新菜品进行手动的添加,对已经存在的菜品信息进行查看审阅,对已经存在的菜品信息进行删除,具体的用用例图进行表述,可以描述成为以下图2.5样式:

菜品信息管理功能主义包括查看菜品的信息,添加菜品的信息,删除菜品的信息、

            图2.5菜品信息管理功能用例图

  1. 用户订餐功能

用户订餐功能的主要操作对象是普通用户(注册会员),普通用户进入系统前台,即系统主页进行查看已经拥有的菜品的菜品信息,或是满意后购买想购买的菜品,具体的用用例图进行表述,可以描述成为以下图2.6样式             图2.6订餐功能用例图                        

2.5设计的基本思想

设计思想遵循以下几点:

  1. 网上订餐系统的开发过程中使用的并非是app形式,而是B/S结构模式,这种设计模式的特色是前台和后台处理层次十分分明,在适用用户方面,适用于当前时代下大部分会上网,熟悉上网操作的普通用户和管理人员。
  2. 本系统开发完成后,最大的特点就是采用了面向对象的原则,我们之所以使用面向对象技术来开发系统,就是因为我们开发系统时对系统准确的掌握,以及精准的抽象,通过良好的抽象可以在总的架构上更清楚的对系统进行架构,从而使系统更加稳定,效率更高化。
  3. 本系统在开发过程中使用模块化的功能设计与分析。模块化设计的核心思想是讲系统的整体功能不断细化求精,细化成为最小的单位——模块。
  4. 本系统在开发过程中,在界面设计上设计的十分简洁,界面设计时遵循了在太原理工学习时所学习的界面简洁性,友好性,可交互性等一系列特征,可供初次使用本系统的人轻松的使用本系统,不会有任何操作障碍。
  5. 本系统设计与实现的漫长过程中,始终遵循在太原理工软件需求工程的基本原理这门课程中所学到的速度优先准则,结合pert图和甘特图计划了设计系统的大体生命周期,在设计开发网上订餐系统中,尽量做到速度优先,同时尽可能的减少资源的占用和使用。
  6. 网上订餐系统开发过程阶段,开发阶段尽量做到即突出攻破重点的项目和内容,又要分析细节,重基础同时也不丢失细节,在遵循这些原则的基础上同时一定要符合设计的要求,符合设计的主题,同时注重可扩展性,可以更多的兼容平台与操作系统,可以方便的扩充功能。

2.6性能需求

2.6.1系统的安全性

 网上订餐系统采用的进入系统身份不同,所具有的权限也不相同,所具有的操作也不同,相应的在可以使用的系统功能上也有很大差别。因而要将二者严格地区别开来,具体的来说:

若是想登陆系统后台对各种信息进行管理,必须要拥有管理员权限,没有取得管理员权限的普通用户不能进入系统后台对各种数据进行修改,从而在这一点上保证了系统关键核心数据的安全性和隐私性,使得数据不会丢失或是被他人修改。

2.6.2数据的完整性

1.各种记录信息的完整性,信息记录内容不能为空

2.各种数据间相互联系的正确性

3.相同数据在不同记录中的一致性

2.7界面需求

 当前界面设计已经成为衡量软件是否优秀的一个关键判断标准,一个设计简洁,操作方便的界面会获得社会各界人士的芳心,会有效的提高使用者的使用率,以及软件的受众程度,并且可以简化管理员的操作,减少用户对网上订餐系统的上手难度,JSP技术是设计网上订餐系统所使用的主要技术,它可以增加网上订餐系统界面的丰富多彩程度,同时,在丰富多彩的基础上,还要注重以下几个方面,他们包括:网上订餐系统的数据的输入设计,网上订餐系统数据的输出设计。

  1. 输出设计

    针对本系统的输出的主要内容和信息是对于普通用户在前台进行的注册信息,订单信息,留言信息,在经过网上订餐系统的处理后变成高效率的,统一格式的,管理方便的信息,以供系统管理员对这些信息进行分类和管理,输出的主要工作和任务便体现于此。

网上订餐系统的设计过程中,为了方便系统管理员对这些信息进行查阅,编辑,后台采用了frame框架对后台进行设计,同时将表格设计的尽量简单优化,去除掉无所谓的信息栏目,使得系统的后台管理人员可以方便的管理系统后台,清晰的反应后台各个部门和组件的联系,表格的设计做到简化和精炼,使得系统后台管理人员的管理难度简小。

2.输入设计

对于本系统的输入模块的设计,输入模块的设计是十分精准的,要求十分严格的,因为一旦输入的数据有误或者出现了偏差,会导致整个数据库和整个系统的混乱,要处理输入数据产生的问题将会耗费大量的人力物力和经费。

具体的,结合本系统进行分析和研究,输入设计的准则应该有如下几条:

1)输入数据应该满足类型与数据库中所定义的数据类型相同,并且满足数据库中字段设置的长度格式要求,输入数据应当尽量考虑用户,做到精简化,同时尽量缩小减少用户的输入数据的数量,从而减少错误率,从而是输入的数据更加规范化。

2)输入过程和启动输入过程的准备阶段应该尽量精炼,从而减少错误的出现和用户使用的难度。

3)采用定时回溯检查的方法,定时对之前部分的数据的正确程度进行检查,以便及时发现错误和改正错误,减少后期发现错误的维护性改正的难度。

结合以上分析,下面给出网上订餐系统的初始化操作界面(用户端),可以清楚的看到系统的各个功能,操作简单,同时输入数据时也十分简单,减少了错误的数据输入的可能性,具体的用户操作界面如图2.7所展示:

图2.7网上订餐系统的用户界面

结合以上分析,下面给出网上订餐系统的初始化操作界面(系统管理员端),可以清楚的看到后台系统修改的各个功能,操作简单,同时输出数据在视图上也十分简单,减少了错误的数据输出的可能性,具体的用户操作界面如图2.8所展示:

图2.8网上订餐系统的管理员界面

第三章 数据库设计

3.1数据库的分析与设计

数据库是用来存储数据的一个大的仓库,但它又不仅是局限于对信息的存储,通过建立数据库,我们可以对数据更好的管理、存储以及查询,而且更为重要的是,我们还可以实现共享数据。数据库中的数据结构表明了具体事务之间的关系。而描述实体类型和实体之间关系的则称之为数据库模型,任何数据库系统都有其特有的数据模型,在本系统中,经过对系统数据库的功能特点以及对需求的分析,最终选择关系模型作为本系统的数据模型。

3.1.1数据库的概念结构设计

在建立数据库的过程中,最为关键的工作就是建立其数据模型,由于客观世界里的具体事物通常都很难将其转化成计算机可以理解的信息,这就要求我们要先将客观世界中的事物转化成可以独立于计算机存在的信息结构,于是就有了概念模型 。E-R 图能够直观地表示概念模型。E-R图的几大常用元素:实体(用矩形框所描述)联系(菱形框所描述)属性(椭圆形框表示),联系有一对一(1...1),一对多(1...n),多对多(n....n)

概念设计:概念设计是进行系统设计的一个十分重要的阶段,概念设计主要完成的任务是在深入,详细了解系统的功能以后建立整个系统的概念模型和概念结构,然后将概念模型转换成图形的形式,比较常用的图形有ER图,类图等等,这里针对网上订餐系统进行ER图(实体-联系图)来对整个系统进行展示。

ER图(实体-联系图):

ER图(实体-联系图)由以下几个固定图形所构成:  

实体形-矩形表示,矩形内为实体名称。  

属性-椭圆形或圆角矩形来表示,主属性的下面要相应的添加下划线。   

联系-菱形表示,菱形内部为联系的内容。

概念设计最终要完成委托方所委托系统的数据库的总体概念结构,也叫概念模式。概念模式有助于委托方更加清楚的认识系统,清楚系统实体之间的联系,用ER图(实体-联系图)可以让用户更加调理化,直观化的了解系统。

实体

实体间关系

属性

这里根

  1. 管理员信息E-R图

管理员的属性主要包括以下几个方面:编号ID,登录账号,登录密码。

         图3.1 管理员信息实体E-R图

  1. 用户信息的E-R(实体—联系图)图。

用户信息主要的属性主要包括,用户ID,账号,密码,姓名几个属性。

                   图3.2用户信息E-R图

  1. 菜品信息实体E-R图。

菜品信息主要的属性包括菜品ID,编号,名称,介绍,图片,价格几个属性。

             图3.3 菜品信息实体E-R图

  1. 订单信息E-R图

 订单信息主要包括订单ID(订单由系统生成的数字ID),订单编号,送货地址,付款方式,金额,用户ID,状态,订单编号等几个属性。

              图3.4 订单信息实体E-R图

  1. 购物车信息E-R图

购物车实体主要包括购物车ID,菜品ID,订单ID,数量几个属性。

            图3.5 购物车信息实体E-R图

  1. 评价信息E-R图

评价实体主要包括评价属性,内容,用户ID,评价时间几个属性。

                    图3.6 评价信息实体E-R图

  1. 系统总体ER图:

系统总体ER图主要从顾客,菜品,管理员三大实体的角度切入分析,描绘出的ER图,具体的ER图如下3.7所展示:

图3.7 系统总体E-R图

3.1.2数据库的逻辑结构设计

结合本系统,对数据库进行逻辑结构的设计后可以建立各种表如下所展示:

 (1)系统管理员的信息表主要内容是记录系统管理员注册时所填写的一系列信息  表的结构以及内容分布如表3.1所展示的一样。

表3.1管理员信息表(t_admin)

列名

数据类型

长度

允许空

是否主键

说明

Admin_id

int

10

管理员ID

userName

varchar

50

登陆账号

userPw

varchar

50

登陆密码

  1. 用户的信息表主要记录普通用户注册成为会员时所必须填写的一系列信息,表的结构以及内容分布如表3.2所展示的一样。

表3.2用户信息表(t_user)

列名

数据类型

长度

允许空

是否主键

说明

user_id

int

   10

    否

    是

用户ID

loginname

varchar

50

帐号

loginpw

varchar

50

密码

name

varchar

50

姓名

(3)留言信息表的功能是用来保存顾客在订餐完成后对系统的留言,ID是主码(key word),表的结构以及内容分布如表3.3所展示的一样。

表3.3留言信息表(t_liuyan)

列名

数据类型

长度

允许空

是否主键

说明

Liuyan_id

int

10

留言ID,主键递增

neirong

varchar

50

信息内容

liuyanshi

varchar

50

留言时间

user_id

varchar

50

用户

huifu

varchar

50

回复信息

huifushi

varchar

50

回复时间

(4)菜品信息表主要记录的是系统已上架的菜品的详细信息。其中ID是主码(key word),表的结构以及内容分布如表3.4所展示的一样。

表3.4菜品信息表(t_goods)

列名

数据类型

长度

允许空

是否主键

说明

Caipin_id

int

10

菜品ID

Catelog_id

int

10

名称

mingcheng

varchar

50

名称

jieshao

varchar

50

介绍

fujian

varchar

50

图片

shichangjia

int

价格

  1. 订单的信息表的主要部分是记录已下的订单的详细信息,其中订单ID是是主码(key word),表的结构以及内容分布如表3.5所展示的一样。

表3.5订单信息表(t_order)

列名

数据类型

长度

允许空

是否主键

说明

Dingdan_id

int

10

订单ID

bianhao

varchar

50

订单编号

shijian

varchar

10

下单时间

zhuangtai

varchar

10

状态

huifu

varchar

50

排队计时

songhuodizhi

varchar

50

送货地址

fukuanfangshi

varchar

50

付款方式

jine

int

50

订单金额

User_id

int

4

用户ID

(6)购物车的信息表的主体内容是记录了购物车内已经购买的菜品的一系列信息 ,其中购物车ID是主码(key word),表的结构以及内容分布如表3.6所展示的一样。

表3.6订单项信息表(t_orderitem)

列名

数据类型

长度

允许空

是否主键

说明

Gouwuche_id

int

10

购物车ID

goods_id

int

10

菜品ID

goods_quantity

int

10

数量

(7)评价信息表的主体内容是保存系统后台管理员对前台用户的评价信息,其中评价ID是主码(key word)表的结构以及内容分布如表3.7所展示的一样。

表3.7信用评价表(t_xinyong)

列名

数据类型

长度

允许空

是否主键

说明

Pingjia_id

int

10

评价ID

shuxing

varchar

50

评价属性

neirong

varchar

90

内容

shijian

varchar

50

时间

User_id

int

4

用户ID

(8)菜品分类表主要存储诸如凉拌菜,热炒菜等等的菜品类别的信息,其中ID是主码(key word)表的结构以及内容分布如表3.8所展示的一样。

                        表3.8菜品分类表(t_catelog)

列名

数据类型

长度

允许空

是否主键

说明

Catelog_id

int

10

菜品类别ID

name

varchar

50

菜品类别

3.1.3数据库的连接原理

网上订餐系统数据库连接也是开发该系统的关键环节,主要采用JDBC方式,这些知识在太原理工大学开设的JSP课程中有所学习,具体的操作步骤如下图3.8所                 


图3.8数据库连接步骤图

网上订餐系统连接数据库的程序采用DAO(数据访问对象)模式来对数据库进行处理操作,具体思想如下类图3.9所展示:

BusinessObject

DataAccessObject

DataSource

DataTransferObject

使用

封装

创建/使用

获取/修改

图3.9 DAO模式类图

网上订餐系统在开发过程中,为了连接数据库,编写了一个DB.java文件,具体的部分代码如下所展示:

public class DB

{

      private Connection con;

      private PreparedStatement pstm;//PreparedStatement对象pstm

      private String user = "root";

      private String password = "8888";

      private String className = "com.mysql.jdbc.Driver";//驱动程序对象

...}

3.2中文乱码问题处理                   

在开发过程中,我们遇到了中文乱码问题,手动在各个页面设置十分复杂麻烦,并且十分占用开销。

在web.xml中配置代码如下所展示:

<filter>

    <filter-name>SetChartEncoding</filter-name>

    <filter-class>com.util.EncodingFilter</filter-class>

    <init-param>

      <param-name>encoding</param-name>

      <param-value>UTF-8</param-value>  <!--设置你想用的字符集,UTF-8-->

    </init-param>

  </filter>

  <filter-mapping>

    <filter-name>SetChartEncoding</filter-name>

    <url-pattern>/*</url-pattern> 

  </filter-mapping>

与此相对应的EncodingFilter.java文件中:

public void init(FilterConfig filterConfig) throws ServletException {

              this.filterConfig = filterConfig;

              this.encoding = filterConfig.getInitParameter("encoding");

       }

为了进一步的处理中文乱码,我们采用如下的方式来处理:

public class EncodingFilter implements Filter {

       protected String encoding = null;

       protected FilterConfig filterConfig = null;

       public void destroy() {

              this.encoding = null;

              this.filterConfig = null;

       }

//采用encodingfilter统一处理字符集

public void doFilter(ServletRequest request, ServletResponse response,

                     FilterChain chain) throws IOException, ServletException {         

              String encoding = selectEncoding(request);

              if (encoding != null) { // 对请求进行编码设置

                     request.setCharacterEncoding(encoding);

                     response.setCharacterEncoding(encoding);

              }

3.3数据流程图

数据流图主要由以下几个模块组成:                                            

图3.10数据流程图例

根据以上对原有网上订餐的系统流程图的描述,我们从系统的多个方面进行了分析,希望使系统的管理更加合理,在使用中更具有可行性,由顶层开始向下对网上订餐系统逐步分层,逐步细化。下面给出系统的顶层图。

3.3.1系统顶层图

系统顶层图,也叫顶层数据流图,是用来描绘整个系统各个用户或者系统对于该系统的输入和输出,具体的,针对本系统来说,网上订餐系统的外部系统或人员有顾客和管理员两大部分,系统顶层图反映了外部对系统的输入数据流以及系统经过一系列处理后的输出数据流,从系统顶层图上可以清晰的看出系统的数据流向,便于开发人员和用户方更加深入的了解系统,具体地如图3.11所示:

图3.11网上订餐系统顶层图数据流图

3.3.2系统0层图

根据模块功能不同,把系统分为系统后台管理员登录模块,注册会员登录模块,菜品查询模块,管理购物车模块,管理订单模块,留言管理模块,信息管理模块几个大的模块作为系统的零层。各个模块独立,但各个模块之间又可以相互调用数据,进而完成数据的综合存储,一起实现系统的预期功能。网上订餐系统的0层图如图3.12所示:

图3.12网上订餐系统的0层图

3.4时序图

时序图,是用来表述系统各个行为的先后顺序的一种图形,它使得初次接触网上订餐系统的用户能够清楚地了解该系统各个动作的先后顺序,协作顺序,时序图的最顶端的矩形框表示系统的各个参与者,实线表示传递的消息或者行为,虚线表示返回的消息或者行为。以下是该系统的时序协作流程:

用户订餐时序流程:

  1. 登录主页。
  2. 查看网上订餐系统主页的各种菜品信息,查询想要购买的菜品的信息。
  3. 选择自己想要购买的菜品,点击菜品的图片,添加菜品进入购物车。
  4. 确定菜品无误后,购买该菜品,
  5. 订单的内容发送到各个餐厅
  6. 餐厅经理通知送餐人员进行送餐,同时向管理员反馈自己的送餐情况
  7. 管理人员更改后台的订单里面的菜品的状态,改为送餐状态,同时通知送餐人员向顾客送餐

下面展示的是订餐的时序图,如下图3.13所展示的一样:

图3.13订餐的时序图

3.5 数据字典

3.5.1 数据结构

数据结构表达了数据与数据之间的构成组合关系,对于网上订餐系统来说,数据结构条目如下:

表3.5数据结构条目

数据结构条目

数据结构名称:t_admin

含义说明:主要定义了管理员的信息

组成:管理员用户的ID,管理员用户的账号,管理员用户的密码

表3.6数据结构条目

数据结构条目

数据结构名称:t_catelog

含义说明:主要定义了菜品类别的信息

组成:菜品类别的ID,菜品类别的名称,菜品类别是否删除

表3.7数据结构条目

数据结构条目

数据结构名称:t_goods

含义说明:主要定义了菜品的信息

组成:菜品的ID,菜品类别的id,菜品的编号,菜品的名称,菜品的介绍,菜品的图片,菜品的价格,菜品是否删除

表3.8数据结构条目

数据结构条目

数据结构名称:t_liuyan

含义说明:主要定义了留言的相关信息

组成:留言的ID,留言的内容,留言的时间,用户的ID,回复内容,回复时间

表3.9数据结构条目

数据结构条目

数据结构名称:t_order

含义说明:主要定义了订单的信息

组成:订单的ID,订单的编号,订单的时间,订单的状态,订单的回复,订单的送货地址,订单的付款方式,订单的金额,用户的ID

表3.10数据结构条目

数据结构条目

数据结构名称:t_orderitem

含义说明:主要定义了购物车的信息

组成:购物车的ID,菜品的ID,购物车中菜品的数量

表3.11数据结构条目

数据结构条目

数据结构名称:t_user

含义说明:主要定义了注册会员的信息

组成:会员的ID,会员的账号,会员的密码,会员的名字,是否删除了会员

表3.12数据结构条目

数据结构条目

数据结构名称:t_xinyong

含义说明:主要定义了管理员对用户的信用评价信息

组成:信用评价的ID,信用评价的属性,信用评价的内容,信用评价的时间,顾客的ID

3.5.3 数据流

网上订餐系统的数据流如下所示:

表3.13数据流表

t_admin=管理员用户的ID+管理员用户的账号+管理员用户的密码

t_catelog=菜品类别的ID+菜品类别的名称+菜品类别是否删除

t_goods=菜品的ID+菜品类别的id+菜品的编号+菜品的名称+菜品的介绍+菜品的图片,菜品的价格+菜品是否删除

t_liuyan=留言的ID+留言的内容+留言的时间+用户的ID+回复内容+回复时间

t_order=订单的ID+订单的编号+订单的时间+订单的状态+订单的回复+订单的送货地址+订单的付款方式+订单的金额+用户的ID

t_orderitem=购物车的ID+菜品的ID+购物车中菜品的数量

t_user=会员的ID+会员的账号+会员的密码+会员的名字+是否删除了会员

t_xinyong=信用评价的ID+信用评价的属性+信用评价的内容+信用评价的时间+顾客的ID

3.5.4数据存储

从数据存储可以看出数据的去向来源头,对于一个系统的数据流分析十分重要,以下是数据存储的具体说明。

表3.14数据存储条目

数据存储条目

文件名:管理员信息表

组成:管理员用户的ID+管理员用户的账号+管理员用户的密码

组织方式:索引方式 以管理员用户的ID为主键

表3.15数据存储条目

数据存储条目

文件名:菜品类别信息表

组成:菜品类别的ID+菜品类别的名称+菜品类别是否删除

组织方式:索引方式 以菜品类别的ID为主键

表3.16数据存储条目

数据存储条目

文件名:菜品信息表

组成:菜品的ID+菜品类别的ID+菜品的编号+菜品的名称+菜品的介绍+菜品的图片+菜品的价格+菜品是否删除

组织方式:索引方式 以菜品的ID为主键

表3.17数据存储条目

数据存储条目

文件名:留言信息表

组成:留言的ID+留言的内容+留言的时间+用户的ID+回复内容+回复时间

组织方式:索引方式 以留言的ID为主键

表3.18数据存储条目

数据存储条目

文件名:订单信息表

组成:订单的ID+订单的编号+订单的时间+订单的状态+订单的回复+订单的送货地址+订单的付款方式订单的金额+用户的ID

组织方式:索引方式 以订单的ID为主键

表3.19数据存储条目

数据存储条目

文件名:购物车信息表

组成:购物车的ID+菜品的ID+购物车中菜品的数量

组织方式:索引方式 以购物车的ID为主键

表3.20数据存储条目

数据存储条目

文件名:注册会员信息表

组成:会员的ID+会员的账号+会员的密码+会员的名字+是否删除了会员

组织方式:索引方式 以为会员的ID主键

在网上订餐系统开发的历程中,由前文对网上订餐系统进行需求分析和系统分析之后,便进入最重要的环节之一详细设计,下文将对系统的主要功能用户处理的模块,后台管理员处理模块这两大模块进行分析,具体的又可以划分成为用户的注册与登录,留言内容的管理,用户信息的管理,菜品信息的管理,用户订餐功能来对系统的详细设计进行进一步的阐述。

在进行系统软件的设计中,要遵循一些原则和规范,这样才能规范设计流程,便于进行开发。本系统遵循着以下设计原则:

(1) 良好的适用性。系统最终要面向用户,用户的评价决定系统的优劣。也就是说我们所设计的软件需要满足客户的需求。因此本文的设计遵循的是用户需求优先的原则。

(2) 结构稳定性。在进行开发设计之前,往往需要对系统的整体结构做一个设计,其中包括模块的设计,数据库的设计,界面的设计等等。一旦确定了体系的结构,这些设计便能流程化的进行。因此,维持一个稳定的结构才能保证后续一系列的工作的进行。

(3) 可扩展性。衡量一个系统的好坏需要评估这个系统的可扩展性。如果软件只能实现现有的功能,对其他功能的添加有封闭性,当用户提出新的需求,只能重新设计,这显然是不合理的。因为良好的可扩展性无论对客户还是开发人员而言都是有益的。

(4) 复用性。在一个系统中,有很多的模块内容是比较成熟,因此很多类似的工作就可以通过复用来实现,这样不仅提高了效率,而且可靠性也大大提高。

(5) 易维护性。系统的维护往往是最耗费精力和金钱的。因此设计出易维护的系统能够使维护人员能够快速查找出问题,能让系统具备自维护的特点是很有必要的。

4.1用户注册与登录

 网上订餐系统的用户注册与登录模块,是本系统的关键模块,这一模块的具体设计十分关键,因为该模块会影响用户对本系统的体验。普通游客进行注册成为系统会员,在进行注册时,游客用户在注册时需要填写账号,密码,姓名。密码设置时不能为空,并且,账号设置时也不能为空,输入数据通过check1()来衡量是否可以录入。 具体的用户注册与登录界面如下图4.1和4.2所展示。

图4.1用户注册页面设计

图4.2用户登陆页面设计

以上的登录过程的关键技术实现:在操作人员在页面输入账号密码尝试进行登录后

系统会自动跳转到已经编写好的登录service中,登录service的主要功能就是对登录系统的身份进行判断,usertype==1为会员登录,usertype==0为管理员登录,判断身份后将相应的属性进行设置,还可以对管理员密码进行编辑修改等等功能

登录service loginservice核心部分的代码编写如下所展示:

try

{

         ResultSet rs=mydb.getRs();

         boolean mark=(rs==null||!rs.next()?false:true);                                                             if(mark==false)

              {

                     result="no";

              }

                     else

                     {

                            result="yes";

                            TAdmin admin=new TAdmin();

                            admin.setUserId(rs.getInt("userId"));

                            admin.setUserName(rs.getString("userName"));

                            admin.setUserPw(rs.getString("userPw"));

                            WebContext ctx = WebContextFactory.get(); //得到WebContext对象ctx

                            HttpSession session=ctx.getSession();

                            session.setAttribute("userType", 0);

                     session.setAttribute("admin", admin);

                     }

rs.close();

 }  

4.2管理员首页

 系统后台管理员页面也是该系统的关键部分,系统后台管理员的操作界面的界面设计如下图所展示,左边分栏为系统后台管理员可以完成的各种修改操作模块,右边为具体的操作界面, 系统后台管理员的登录页面具体的如下图4.3所展示。

图4.3管理员主页面

在各个页面设计的同时为了防止未注册成为会员的游客进行误操作,设计了普通游客非注册会员点击其他模块都会进行弹窗,请先登录的提示,具体的模块设计代码如下所展示的一样:

 <c:if test="${sessionScope.userType !=1}">

       alert("请先登录");

</c:if>

4.3管理员功能模块

4.3.1留言模块管理

具体的留言模块的设计,网上订餐系统后台管理员可以查看前台注册会员的留言,可以对留言进行删除和回复操作,具体的实现过程是在liuService.java先查询数据库获取各种信息,将结果放在结果集rs当中,然后发送到相应的admin的liuyanMana.jsp页面,向网上订餐系统后台管理员展示留言信息,管理员可以进行删除和回复操作。具体的界面如下图4.4所展示。

图4.4留言信息管理页面

4.3.2用户信息管理

网上订餐系统用户的信息向管理员展示的原理与上述留言向管理员展示的原理相同,这里便不再详细表述。向网上订餐系统后台管理员展示已经注册的会员的信息。系统设计过程中还设计了一个删除操作,可以把已注册会员的信息删除,具体的界面如下图4.5所展示

图4.5用户信息管理

4.3.3菜品信息管理

4.3.3.1菜品信息录入

网上订餐系统的菜品信息录入模块主要功能是系统后台管理员用来输入新菜品的信息,信息的内容包含菜品名称,菜品的介绍,菜品的价格等等。如果某一项信息缺失,系统会提示缺少的信息,通过check()函数来检查信息输入是否完整,具体的界面如图4.6所展示:

图4.6菜品信息录入

具体的,网上订餐系统的程序流程图如下图4.7所展示:

4图

4.3.3.2菜品信息管理

 菜品信息输出的实现方式与留言输出的实现方式相同,这里便不再详细表达,主界面会显示菜品的遍号,菜品的名称,菜品的介绍,菜品的图片,菜品的价格,删除菜品的操作按钮,具体的主页面如下图4.8所展示。

图4.8菜品信息管理页面

4.3.4订单信息管理

 网上订餐系统的订单信息的管理模块的具体实现过程也留言输出的过程相同,这里便不再详细表达,具体的订单信息呈现给系统管理员有订单的编号,订单的下单时间,订单的状态,订单的排队计时,订单的送货地址,订单的付款方式,订单的总金额,订单的具体明细,下该订单的注册会员的用户信息,可以删除该订单的操作,具体的界面

如下图4.9所展示。

图4.9订单信息管理

4.4用户订餐功能

用户订餐功能简而言之就是注册会员进入网上订餐系统的首页进行下单的过程,进入主页面后,可以映入眼帘地看到系统的主要功能,菜品的信息展示,进行会员的注册,查看已下单产品的购物车,查看我的订单,对网上订餐系统的后台管理员进行留言及查看回复。总价格的计算通过get totalprice()函数来实现,具体的主页面及操作过程如下图4.10,4.11 ,4.12所展示。

图4.11菜品详细信息页面

图4.12购物车页面

结合以上对点餐过程的分析,以下是点餐过程流程图,如图4.13所示

   图4.13点餐过程的流程图                                      

第五章 系统测试

5.1系统测试目的与意义

只有通过了系统的测试才能上线项目的系统运行,如果系统前期的缺陷没有被检测出来,那么后期的修补和维护将是一项巨大的工程。为了使得此类现象得到避免,在测试系统时要明确现在阶段已经出现的问题,需要做到较为测试用例的完善性使得其范围覆盖到各个方面,要测试可能存在突发状况的系统,检测在不可抗因素的影响之下数据在系统里的安全性大小。只有在上线运行系统以前做好各项检测才可以实现今后维护投入的最小化。由此可见,进行系统检测并不是去观测系统的完善程度,而是去对系统存在的弊端进行明确,对实际存在的问题进行发现。在系统里难免会存在问题和缺失,可是实际运用于企业里的系统要求的系统性能和功能都是极高的,所以,就需要在最初开始设计系统之时进行各项检测的排查。测试系统的工作人员需要在设计系统检测用例时极为细心。

5.1.1 网上订餐系统的测试目标

网上订餐系统系统最终应完成的测试目标:本文应着重于系统的功能测试,测试的对象分成管理员和注册会员两大部分,在实现了预定的系统功能及满足用户需求的前提条件下,尽可能地发现并完善系统中的漏洞与隐患,确保软件的实用性、安全性、可靠性、可扩展性以及经济性,为今后的网上订餐系统提供有力保障。

5.2测试过程

5.2.1主页面及系统后台的测试

系统登录模块测试:

测试流程: 1.打开系统首页,输入错误的登录信息

           2.登录

           3.输入正确的登录信息

           4.登录

  1. 测试结果

修改密码模块测试:

测试流程: 1.打开修改密码界面,输入错误的密码

           2.点击修改密码

           3.输入正确的修改密码

           4.点击修改密码

  1. 测试结果

菜品查询模块测试:

测试流程: 1.打开菜品查询界面,输入不存在的菜品

           2.点击菜品查询

           3.输入正确的菜品

           4.点击菜品查询

  1. 测试结果

表5.1管理员登录测试用例表

测试用例ID

TC0001

测设用例名称

管理员登录查看是否可以正常合法进入

产品名称

基于jsp的网上订餐系统

产品版本

version 1.0

功能模块

管理员登录模块

测试平台

各种浏览器

用例入库时间

2017.5.1

用例更新时间

2017.5.1

测试功能点

输入用户名为空,密码为空,点击提交。(不输入账号和密码)

测试目的

判断是否可以在输入无效等价类的情况下正常登录,或是在输入无效等价类的情况下查看系统给出什么样的反馈

测试级别

详细功能测试

测试类型

单元测试

预置条件

无,默认开始登录时账号密码都为空

 测试步骤

  1. 输入空账号,空密码,点击登录

2.查看登录结果反馈情况

预期结果

登陆失败,系统提示请输入用户名

是否和预期结果一致

是,和预期结果相一致

表5.2管理员登录测试用例表

测试用例ID

TC0002

测设用例名称

管理员登录查看是否可以正常合法进入

产品名称

基于jsp的网上订餐系统

产品版本

version 1.0

功能模块

管理员登录模块

测试平台

各种浏览器

用例入库时间

2017.5.1

用例更新时间

2017.5.1

测试功能点

输入用户名为m1,密码为空,点击提交。(输入账号,不输入密码)

测试目的

判断是否可以在输入无效等价类的情况下正常登录,或是在输入无效等价类的情况下查看系统给出什么样的反馈

测试级别

详细功能测试

测试类型

单元测试

预置条件

无,默认开始登录时账号密码都为空

测试步骤

1.输入账号m1,空密码,点击登录

2.查看登录结果反馈情况

预期结果

登陆失败,系统提示请输入用户名

是否和预期结果一致

是,和预期结果相一致

表5.3管理员登录测试用例表

测试用例ID

TC0003

测设用例名称

管理员登录查看是否可以正常合法进入

产品名称

基于jsp的网上订餐系统

产品版本

version 1.0

功能模块

管理员登录模块

测试平台

各种浏览器

用例入库时间

2017.5.1

用例更新时间

2017.5.1

测试功能点

输入用户名为m1,密码为1,点击提交。(输入错误的账号密码)

测试目的

判断是否可以在输入无效等价类的情况下正常登录,或是在输入无效等价类的情况下查看系统给出什么样的反馈

测试级别

详细功能测试

测试类型

单元测试

预置条件

无,默认开始登录时账号密码都为空

测试步骤

1.输入账号m1,密码1,点击登录

2.查看登录结果反馈情况

预期结果

登陆失败,系统提示账号密码错误

是否和预期结果一致

是,和预期结果相一致

表5.4管理员登录测试用例表

测试用例ID

TC0004

测设用例名称

管理员登录查看是否可以正常合法进入

产品名称

基于jsp的网上订餐系统

产品版本

version 1.0

功能模块

管理员登录模块

测试平台

各种浏览器

用例入库时间

2017.5.1

用例更新时间

2017.5.1

测试功能点

输入用户名为a,密码为a,点击提交。(输入正确的账号和密码)

测试目的

判断是否可以在输入有效等价类的情况下正常登录,或是在输入有效等价类的情况下查看系统给出什么样的反馈

测试级别

详细功能测试

测试类型

单元测试

预置条件

无,默认开始登录时账号密码都为空

测试步骤

1.输入账号a,密码a,点击登录

2.查看登录结果反馈情况

预期结果

系统提示通过验证,登录成

  

表5.4(续)

是否和预期结果一致

是,和预期结果相一致

表5.5会员登录测试用例表

测试用例ID

TC0005

测设用例名称

会员登录查看是否可以正常搜索菜品的信息

产品名称

基于jsp的网上订餐系统

产品版本

version 1.0

功能模块

管理员登录模块

测试平台

各种浏览器

用例入库时间

2017.5.1

用例更新时间

2017.5.1

测试级别

详细功能测试

测试类型

单元测试

预置条件

无,默认开始登录时账号密码都为空

测试步骤

1.输入账号m1,密码1,点击登录

2.查看登录结果反馈情况

预期结果

登陆失败,系统提示账号密码错误

是否和预期结果一致

是,和预期结果相一致

表5.6会员登录测试用例表

测试用例ID

TC0006

测设用例名称

会员登录查看是否可以正常搜索菜品的信息

产品名称

基于jsp的网上订餐系统

产品版本

version 1.0

功能模块

管理员登录模块

测试平台

各种浏览器

用例入库时间

2017.5.1

用例更新时间

2017.5.1

测试功能点

输入查询的菜品糖醋排骨,点击查询按钮。(输入正确的系统已存在的菜品信息)

测试目的

判断是否可以在输入有效等价类的情况下正常查询菜品,或是在输入有效等价类的情况下查看系统给出什么样的反馈

测试级别

详细功能测试

测试类型

单元测试

预置条件

无,默认开始时查询菜品栏为空

测试步骤

1.输入查询的菜品糖醋排骨(已经存在的菜品),点击查询

2.查看查询结果反馈情况

表5.6(续)

预期结果

查询成功,系统给出所查询菜品(糖醋里脊)的菜品信息

是否和预期结果一致

是,和预期结果相一致

表5.7管理员修改密码测试用例表

测试用例ID

TC0007

测设用例名称

管理员登录查看是否可以正常修改管理员密码

产品名称

基于jsp的网上订餐系统

产品版本

version 1.0

功能模块

管理员登录模块

测试平台

各种浏览器

用例入库时间

2017.5.1

用例更新时间

2017.5.1

测试功能点

输入错误的原密码,输入新密码,点击修改密码按钮(输入错误的原密码信息)

测试目的

判断是否可以在输入无效等价类的情况下正常修改密码,或是在输入无效等价类的情况下查看系统给出什么样的反馈

测试级别

详细功能测试

测试类型

单元测试

预置条件

默认开始时管理员账号为a

测试步骤

1.输入原密码b(错误的原密码),点击修改密码

2.查看修改密码的结果反馈情况

预期结果

修改密码失败,系统提示原密码不正确,修改失败

是否和预期结果一致

是,和预期结果相一致

表5.8管理员修改密码测试用例表

测试用例ID

TC0008

测设用例名称

管理员登录查看是否可以正常修改管理员密码

产品名称

基于jsp的网上订餐系统

产品版本

version 1.0

功能模块

管理员登录模块

测试平台

各种浏览器

用例入库时间

2017.5.1

用例更新时间

2017.5.1

测试功能点

输入正确的原密码,输入新密码,点击修改密码按钮(输入正确的原密码信息)

测试目的

判断是否可以在输入有效等价类的情况下正常修改密码,或是在输入有效等价类的情况下查看系统给出什么样的反馈

表5.8(续)

测试级别

详细功能测试

测试类型

单元测试

5.2.2测试模块及案例

注:此处有效等价类为正确输入账号密码,正确登录系统,无效等价类为未能按照正确标准输入账号密码

  1. 数据库管理员(Admin表)中的信息为:

    图5.1 数据库管理员信息表

(2)管理员登录后台系统的测试

表5.9 管理员登录后台系统的测试等价类划分

输入数据

有效等价类

无效等价类

账号

(1)正确账号

  1. 账号为空
  2. 账号错误

密码

(2)正确密码

(5)密码错误

(6)密码为空

表5.10管理员登录后台系统的测试用例

用例编号

依次输入

期望结果

覆盖

实际结果

1

a,a

通过验证,提示登录成功

1、2

登录成功

2

m1,null

不通过验证

4、6

登录失败

3

m1,m1

不通过验证

4、5

登录失败

4

null,m1

不通过验证

3、5

登录失败

5

null,null

不通过验证

3、6

登录失败

以下是测试过程部分截图:

用户名:null   密码:null

         图5.2用户名null密码null结果图

用户名:m1   密码:null

            图5.3用户名m1密码null结果图

用户名:a   密码:a

              图5.4用户名a密码a结果图

查询a

                               图5.5查询a结果图

查询糖醋排骨

                           图5.6查询糖醋排骨结果图

会员登录  输入账号bbb 密码 空

                       图5.7会员登录测试结果图

会员登录输入账号bbb 密码bbb

              图5.8会员登录测试结果图

会员登录输入账号a,密码a

              图5.9会员登录测试结果图

5.2.3系统性能测试

功能测试是为了某种的最基本需求,性能测试的目的是保证系统正常运转的关键一环。测试的具体内容如下表5.1所示:

表5.1 性能测试主要的内容

测试内容

测试要求

测试结论

对用户界面的控件以及数据接口的正确性进行测试

能不能使客户满意

通过

测试设计的界面是不是受到人们的喜爱

突出信息,设计新颖、风格一致

通过

测试系统操作是否简单

使客户使用起来比较方便

通过

对网络的安全性进行测试

在这个系统中安全软件能不能正常运转,这个系统能不能对不良信息进行过滤,防止不好的软件窃取它的信息。

通过

测试数据安全性

系统的数据要做到加密,外来的用户不能够进入这个系统获取这些数据。

通过

性能测试压力测试

能够协助人们进行办公。

通过

并发测试

当系统增加用户的时候,系统会产生什么样的反应,会不会出现卡顿的情况。

通过

稳定性测试测试系统的稳定性

长时间处在运行的状态下,系统能不能保证一直处在一种比较好的运行状态。

通过

测试系统的可靠性

当进入这个系统的人过多时,这个系统能不能正常运行。

通过

兼容性测试测试

这个系统能不能在不同的环境、操作系统以及浏览器上能不能正常工作。

通过

功能性测试

系统上的功能能不能满足酒店需要的所有的功能。

通过

5.2.4缺陷分析

    经过测试,该程序中没有严重影响系统运行的错误,没有功能缺陷,也没有不影响运行但必须修改的错误。

测试模块都具有较好的交互性,出现错误可以提示用户哪里出错,使用户可以及时修改。

5.3测试结果

测试完成后,分析之前我们所进行的一系列的分析,可以得出下列的结论:网上订餐系统可以完全满足用户方和开发方的需要,满足需求规格说明书,满足需要的功能,十分易于管理,后台管理人员可以很容易掌握,再加上系统具有很高的安全性、可靠性和扩展性,完全能够达到订餐系统所要求的各项指标,从而更加有效的提高了网上订餐系统的水平。

总结与展望

本文的主要书写方面包括以下几个方面:

(1)针对本文将要建设的系统,进行详细的背景和开发技术以及针对网上订餐系统的分析归纳,并介绍系统开发时将采纳的主要技术和技术难点。

(2)利用软件工程思想,对系统进行需求分析,包括功能性需求和非功能性需求;针对功能需求描绘出了系统的总体功能分析;然后针对上述内容,设计出系统的用例图ER图,程序流程图等;最后各个功能模块进行UML建模设计,描绘系统设计过程。

(3)本系统采用B/S架构构建本系统。

(4)在系统设计完成以后,对系统的性能进行相应的测试,测试过程中即使用了白盒测试法,也使用了黑盒测试法,同时包括兼容性测试,通过多种测试相结合的方式来确保系统的健壮性和信息安全性。

 经过五个月的对该系统的开发,在开发学习研究过程中,我学到了很多很多,在同学的帮助,老师的指导下使我受益匪浅。具体的收货,我认为在开发网上订餐系统的过程中,我温习了很多以前在太原理工大学学习的的jsp知识,java知识,数据库知识,可以说,太原理工大学开设的很多课程都十分的实用。在开发研究过程当中,我学会了一项十分重要的品质,那就是耐心。只有耐心的研究每一个代码,耐心的查询资料,才是做学问的真谛,没有一件事是可以一蹴而就的。在开发的过程当中,每当遇到不会的问题,慢慢的开始学会了独立思考,而不是像以前一样轻易的求助同学,我想这也是毕业设计教会我们的另一项良好的品格,养成良好的独立思考的习惯,同时独立思考也是研究学术的一项必备的品质。

在开发研究学习过程中,我遇到了许多自身解决不了的问题,互联网帮助了我很多,如今百度上面有很多关于jsp的资料,我结合资料和自身的实践经验,并且通过身边已经开发出来的网上订餐系统,例如美团外卖,饿了么等软件,分析各个软件的优劣,结合自身知识的条件基础,开发出了该系统。

开发网上订餐系统的过程中让我再次复习了B/S的结构模式,复习了连接数据库的代码,同时我学会了Debug的方法,学会了处理bug的常用方法以及报错信息的阅读分析能力,同时我学会了做项目时一定要备份,以免数据的丢失。

此外,在将来信息技术不断发展的前提下,智能化是其软件和网络设备所必须的发展方向,因而移动智能是系统软件未来的发展方向。在未来的学习和工作里需要加深这方面的研究,使其分析更加细致。

限于本人自身知识的局限性以及准备时间不够充分,因此还有一部分后续工作尚未完成,主要是含有以下几个环节:开发系统的过程里有部分模块还不完善,还需要对系统程序和界面进行更深层次的优化和美化。随着使用次数的增多,产生的历史数据也越来越多。对这些大量数据的处理能力也将渐渐对系统性能提出新的挑战。 

通过本次毕业设计提高了我的动手操作能力,系统分析问题的能力,论文书写能力,独立思考能力,英语能力等等。可以说,这次毕业设计对我今后的学习工作都有巨大深远的影响,希望我以后以一种科学严谨的态度来分析问题,处理问题时要像开发网上订餐系统一样有条理,总之,这次毕业设计的过程使我收货颇多,受益匪浅。

参考文献

[1]熊杰. 宾馆住宿管理系统的设计[J]. 中国科技博览, 2015(29):77-77.

[2]孟小峰, 周龙骧, 王珊. 数据库技术发展趋势[J]. 软件学报, 2004, 15(12):1822-1836.

[3]吕浩音. JSP技术介绍[J]. 陇东学院学报:自然科学版, 2007(2):29-31.

[4]张良银. 浅论C/S和B/S体系结构[J]. 工程地质计算机应用, 2006(4):20-23.

[5]沈珏. MVC设计模式[J]. 科技广场, 2009, 2009(9):249-250.

[6]李福弟. 可行性研究内容介绍[J]. 西南金融, 1984(12):28.

[7]田敏, 金星. 技术档案数据库管理系统设计原则及方法初探[J]. 计算机与现代化, 2007(4):69-71.

[8]徐敬. J2EE架构下基于Web的信息管理系统框架研究[J]. 硅谷, 2015(1):84-85.

[9]王华. 探析Java数据库连接池运行原理[J]. 福建电脑, 2010, 26(8):92-93.

[10]陆璐, 王文莉. 浅谈软件测试技术[J]. 郑州铁路职业技术学院学报, 2007, 19(2):41-42.

[11]王萍. 软件测试的重要性[J]. 软件导刊, 2009(4):20-21.

[12]Jacob K. Hotel inventory management system and method: US, US20070075136[P]. 2007.

[13]Xia C. The realization of MyEclipse and database connection[J]. Journal of Wuhan Engineering Institute, 2013.

[14]Gray J. Notes on Data Base Operating Systems[C]// Operating Systems, An Advanced Course. Springer-Verlag, 1978:393-481.

[15]Xia X X, Xin B Y. Compare B/S mode with C/S mode[J]. Journal of Yanbian University, 2002.

[16]Roth R R. SOFTWARE TESTING: US, US 20080010539 A1[P]. 2008.

中文翻译

JSP及其WEB技术

作者:玛丽,弗雷德,弗雷德

来源:现代数据库管理7版

JSP简介

JSP(JavaServer Pages)是一种基于Java的脚本技术。是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。在JSP 的众多优点之中,其中之一是它能将 HTML 编码从 Web 页面的业务逻辑中有效地分离出来。用 JSP 访问可重用的组件,如 Servlet、JavaBean 和基于 Java 的 Web 应用程序。JSP 还支持在 Web 页面中直接嵌入 Java 代码。可用两种方法访问 JSP 文件:浏览器发送 JSP 文件请求、发送至 Servlet 的请求。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。

Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。

JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。

JSP技术方法  

为了快速方便地进行动态网站的开发,JSP在以下几个方面做了改进,使其成为快速建立跨平台的动态网站的首选方案。

将内容的生成和显示进行分离

用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和脚本,生成所请求的内容,并且将结果以HTML(或者XML)页面的形式发送回浏览器。这既有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。

可重用组件

绝大多数JSP页面依赖于可重用的、跨平台的组件(JavaBeans或者Enterprise JavaBeans组件)来执行应用程序所要求的复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者和客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。

采用标识

Web页面开发人员不会都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。

适应平台

几乎所有平台都支持Java,JSP+JavaBeans几乎可以在所有平台下通行无阻。从一个平台移植到另外一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标准的与平台无关的。

数据库连接

Java中连接数据库的技术是JDBC,Java程序通过JDBC驱动程序与数据库相连,执行查询、提取数据等操作。Sun公司还开发了JDBC-ODBC bridge,利用此技术Java程序可以访问带有ODBC驱动程序的数据库,目前大多数数据库系统都带有ODBC驱动程序,所以Java程序能访问诸如Oracle、Sybase、MS SQL Server和MS Access等数据库。此外,通过开发标识库,JSP技术可以进一步扩展。第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来进行工作。JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且能扩展到支持企业级的分布式应用中。

Eclipse功能简介

越来越多的Java开发人员已经开始欣赏Eclipse的JDT提供的生产率和质量收益。它为Java编辑器提供了语法高亮显示、格式化、折叠、内容辅助、代码模板等许多功能。它不断增长的可用重构和代码生成功能集合允许您在更高的级别上操作代码,并自动化通常的代码密集型任务和易错任务。而且,在开发完代码并使用JDT对编写和执行JUnit测试的内置支持对代码进行单元测试之后,可以使用Eclipse的一流Java调试器调试在运行时遇到的任何问题。除了JDT之外,Eclipse SDK—最流行的Eclipse.org下载—还包含Plug-in Development Environment(PDE)。PDE使用特定功能扩展了JDT以构建Eclipse插件—基于Eclipse的应用程序的基本构造块。事实上,使用由Eclipse本身提供的工具能够超越Java开发,可扩展现有Eclipse应用程序,或者甚至创建全新的应用程序。

Eclipse由一个小程序层构成,其中包含许多功能模块或Eclipse术语中所谓的“插件”。插件是在Eclipse应用程序中提供所有功能的组件。它们通过其API一起协作来交付最终结果。在Eclipse中,甚至最基础的功能,比如查找和启动安装的插件,都封装在插件中。为了扩展现有Eclipse功能或在其上进行构建,插件将具体的扩展贡献给由其他插件暴露的扩展点。通常,插件专注于特定区域的责任,并通过一个或多个扩展点的方式将其他责任指派给其他插件。例如,一个插件允许您可视地并行比较两个文件的内容,但它不会关心如何读取这些文件甚至如何解释这些文件的结构;这是其他插件的工作。比较两个文件时,该插件首先检查是否有另一个插件可以解释这些文件的结构。如果找到一个,它就会向找到的插件询问有关文件结构的信息,并在比较过程中使用该信息。

可以看到,模块化架构为Eclipse提供了巨大的灵活性,并提供了一个可以支持原设计者没有预料到的大量应用程序的平台。

Structs功能简介

Struts是一个MVC框架(Framework),用于快速开发Java Web应用。Struts实现的重点在C(Controller),包括ActionServlet/RequestProcessor和我们定制的Action,也为V(View)提供了一系列定制标签(Custom Tag)。Spring是一个轻型容器(light-weight container),其核心是Bean工厂(Bean Factory),用以构造我们所需要的M(Model)。在此基础之上,Spring提供了AOP(Aspect-Oriented Programming, 面向层面的编程)的实现,用它来提供非管理环境下申明方式的事务、安全等服务;对Bean工厂的扩展ApplicationContext更加方便我们实现J2EE的应用;DAO/ORM的实现方便我们进行数据库的开发;Web MVC和Spring Web提供了Java Web应用的框架或与其他流行的Web框架进行集成。就是说可将两者一起使用,达到将两者自身的特点进行互补。

Structs 是一组相互协作的类、servlet 和 JSP 标记,它们组成一个可重用的 MVC 2 设计。这个定义表示 Struts 是一个框架,而不是一个库,但 Struts 也包含了丰富的标记库和独立于该框架工作的实用程序类。

Client browser(客户浏览器),来自客户浏览器的每个 HTTP 请求创建一个事件。Web 容器将用一个 HTTP 响应作出响应。  

Controller(控制器),控制器接收来自浏览器的请求,并决定将这个请求发往何处。就 Struts 而言,控制器是以 servlet 实现的一个命令设计模式。 struts-config.xml 文件配置控制器。  

业务逻辑,业务逻辑更新模型的状态,并帮助控制应用程序的流程。就 Struts 而言,这是通过作为实际业务逻辑“瘦”包装的 Action 类完成的。

Model(模型)的状态,模型表示应用程序的状态。业务对象更新应用程序的状态。ActionForm bean 在会话级或请求级表示模型的状态,而不是在持久级。JSP 文件使用 JSP 标记读取来自 ActionForm bean 的信息。

View(视图),视图就是一个 JSP 文件。其中没有流程逻辑,没有业务逻辑,也没有模型信息 -- 只有标记。标记是使 Struts 有别于其他框架(如 Velocity)的因素之一。

Struts 的控制器是将事件(事件通常是 HTTP post)映射到类的一个 servlet.正如您所料 —— 控制器使用配置文件以使您不必对这些值进行硬编码。时代变了,但方法依旧。

Action类,ActionForm 维护 Web 应用程序的会话状态。 ActionForm 是一个抽象类,必须为每个输入表单模型创建该类的子类。当我说 输入表单模型 时,是指 ActionForm 表示的是由 HTML 表单设置或更新的一般意义上的数据。Action类是业务逻辑的一个包装。 Action 类的用途是将 HttpServletRequest 转换为业务逻辑。要使用 Action ,请创建它的子类并覆盖 process() 方法。

ActionServlet (Command) 使用 perform() 方法将参数化的类传递给 ActionForm .仍然没有太多讨厌的 request.getParameter() 调用。当事件进展到这一步时,输入表单数据(或 HTML 表单数据)已被从请求流中提取出来并转移到 ActionForm 类中。

考虑 Action 类的另一种方式是 Adapter 设计模式。 Action 的用途是“将类的接口转换为客户机所需的另一个接口。Adapter 使类能够协同工作,如果没有 Adapter,则这些类会因为不兼容的接口而无法协同工作。”。本例中的客户机是 ActionServlet ,它对我们的具体业务类接口一无所知。因此,Struts 提供了它能够理解的一个业务接口,即 Action .通过扩展 Action ,我们使得我们的业务接口与 Struts 业务接口保持兼容。

CSS简介

CSS的编辑方法同HTML一样,也可以是任何文本编辑器或网页编辑软件,还有专门用来编辑CSS的软件。 如果你写的CSS语句是当成外部样式表而在HTML文件中调用,那它的扩展名存成.css就可。当初技术人员想出HTML,主要侧重于定义内容,比如 p表示一个段落,h1表示标题,而并没有过多设计HTML的排版和界面效果。

随着Internet的迅猛发展,HTML被广泛应用,上网的人们当然希望网页做得漂亮些,因此HTML排版和界面效果的局限性日益暴露出来。为了解决这个问题,人们也走了不少弯路,用了一些不好的方法,比如给HTML增加很多的属性结果将代码变得很臃肿,将文本变成图片,过多利用Table来排版,用空白的图片表示白色的空间等。直到CSS出现。

CSS可算是网页设计的一个突破,它解决了网页界面排版的难题。可以这么说,HTML的Tag主要是定义网页的内容(Content),而CSS决定这些网页内容如何显示(Layout)。CSS的英文是Cascading Style Sheets,中文可以翻译成串联式样式表。CSS按其位置可以分成三种:内嵌样式(Inline Style) ,内部样式表(Internal Style Sheet) ,外部样式表(External Style Sheet)。

HTML功能简介

Hyper Text Markup Language 超文本标记语言是一种用来制作超文本文档的简单标记语言。用HTML编写的超文本文档称为HTML文档,它能独立于各种操作系统平台(如UNIX,WINDOWS等)。自1990年以来HTML就一直被用作World Wide Web上的信息表示语言,用于描述Homepage的格式设计和它与WWW上其它Homepage的连结信息。

HTML文档(即Homepage的源文件)是一个放置了标记的ASCII文本文件,通常它带有.html或.htm的文件扩展名。生成一个HTML文档主要有以下三种途径:1.手工直接编写(例如用你所喜爱的ASCII文本编辑器或其它HTML的编辑工具)。2.通过某些格式转换工具将现有的其它格式文档(如WORD文档)转换成HTML文档。3.由Web服务器(或称HTTP 服务器)一方实时动态地生成。

HTML语言是通过利用各种标记(tags)来标识文档的结构以及标识超链(Hyperlink)的信息。

虽然HTML语言描述了文档的结构格式,但并不能精确地定义文档信息必须如何显示和排列,而只是建议Web浏览器(如Mosiac,Netscape等)应该如何显示和排列这些信息,最终在用户面前的显示结果取决于Web浏览器本身的显示风格及其对标记的解释能力。这就是为什么同一文档在不同的浏览器中展示的效果会不一样。目前HTML语言的版本是2.0,它是基于SGML(Standard Generalized Markup Language,标准广义置标语言,是一套用来描述数字化文档的结构并管理其内容的复杂的规范)中的一个子集演变而来的。虽然下一版本的标准HTML3.0(也称为HTML+)正在制订之中,但其中某些部分的实验性标准草案已被广泛采用,大多优秀的Web浏览器(如Netscape等)都能解释HTML3.0中的部分新标记,因此在本章中介绍的一些HTML3.0新标记均已被多数浏览器所接受。

Js脚本语言简介

JS即javascrip,Javascript是一种由Netscape的LiveScript发展而来的脚本语言,主要目的是为了解决服务器终端语言,比如Perl,遗留的速度问题。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。

JavaScript 的正式名称是 "ECMAScript"。这个标准由 ECMA 组织发展和维护。ECMA-262 是正式的 JavaScript 标准。这个标准基于 JavaScript (Netscape) 和 JScript (Microsoft)。Netscape (Navigator 2.0) 的 Brendan Eich 发明了这门语言,从 1996 年开始,已经出现在所有的 Netscape 和 Microsoft 浏览器中。ECMA-262 的开发始于 1996 年,在 1997 年 7 月,ECMA 会员大会采纳了它的首个版本。

脚本script是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。脚本通常可以由应用程序临时调用并执行。各类脚本目前被广泛地应用于网页设计中,因为脚本不仅可以减小网页的规模和提高网页浏览速度,而且可以丰富网页的表现,如动画、声音等。举个最常见的例子,当我们点击网页上的E-mail地址时能自动调用Outlook Express或Foxmail这类邮件软件,就是通过脚本功能来实现的。也正因为脚本的这些特点,往往被一些别有用心的人所利用。例如在脚本中加入一些破坏计算机系统的命令,这样当用户浏览网页时,一旦调用这类脚本,便会使用户的系统受到攻击。所以用户应根据对所访问网页的信任程度选择安全等级,特别是对于那些本身内容就非法的网页,更不要轻易允许使用脚本。通过“安全设置”对话框,选择“脚本”选项下的各种设置就可以轻松实现对脚本的禁用和启用。

现在的脚本语言是比较多的,一般的脚本语言的执行只同具体的解释执行器有关,所以只要系统上有相应语言的解释程序就可以做到跨平台。脚本(Script),就是含有bind和alias等命令的集合,你可以把这个集合存为一个独立的文件然后在需要的时候执行,这样就可以方便你在CS中的使用。脚本可以存为后缀名为.cfg的文件放在cstrike文件夹下,执行时在控制台输入:exec(脚本文件名).cfg即可。比如将一个脚本存为 buys.cfg文件,则在控制台中输入:execbuys.cfg则可以实现我们所需要的功能。要实现一个命令只要把这一过程定义(alias)好,并且分配一个键位给这个命令,以后只要按分配好的键位,就可以实现这一过程。所有的脚本都是通过这一方法实现的。

参考资料:

基于jsp的高校网上订餐系统毕业设计(项目报告+答辩PPT+源代码+数据库+截 图+部署视频)icon-default.png?t=N5K3https://download.csdn.net/download/dwf1354046363/87813539Java毕业设计174例,包含部署视频_易小侠的博客-CSDN博客icon-default.png?t=N5K3https://cv2022.blog.csdn.net/article/details/124463185?spm=1001.2014.3001.5502

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐无限出发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值