(二)公交查询系统的设计与实现说明书

更新时间:2023-07-19 19:48:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

毕业论文﹙设计﹚任务书

院(系) 计算机科学与技术系 专业班级 计本062 学生姓名 荣利娜

一、毕业论文﹙设计﹚题目 公交查询系统的设计与实现

二、毕业论文﹙设计﹚工作自__2009____年__3__月__20_日 起至__2009___年 6 月__23_

日止

三、毕业论文﹙设计﹚进行地点: 校内

四、毕业论文﹙设计﹚的内容要求:

设计目的:本设计利用网页设计课程所学知识,使用Myeclipse开发工具,设计公交查询系统。要求实现用户通过颠倒电查询、站点查询、线路查询、用户流言和管理员对线路信息的添加、

修改、删除和相关新闻发布等功能。

操作系统平台: Windows 2000或Windows XP

开发工具: Myeclipse

涉及技术: Jsp和Access数据库

任务要求:

按照软件工程的思想和方法开发本系统。

1、设计一个用户查询界面;

2、设计管理员对公交信息添加、修改、删除功能;

3、设计查询方式选择功能;

4、设计用户留言功能;

5、编写源程序代码;

6、测试程序功能;

7、编写用户操作手册及使用说明;

8、撰写一篇符合规范的科技论文。

9、准备答辩、答辩。

指 导 教 师 系(教 研 室)

系(教研室)主任签名 批准日期

接受论文 (设计)任务开始执行日期 学生签名 荣利娜

公交查询系统的设计与实现

荣利娜

(陕西理工学院计算机科学与技术系 计算机科学与技术专业062班级,陕西 汉中 723000)

指导教师:薛燕红

[摘要]

公交查询系统主要用于对公交乘车线路的查询和选择,为人们的出行提供方便,无论是在财力还是人力都有很大的节省,更重要的是大大节约了人们的行车时间,有效减少了人们因乘车而迟到、误点的问题。面对如今城市化的飞速发展,公交线路的不断密集,一个有效的公交查询系统对人们的出行起着重要的作用。此公交查询系统就是对公交线路的一个简单查询,主要是运用JSP编程和Access数据库来实现的,主要包括后台数据库的建立和维护以及前台应用程序的开发两个方面,主要实现站点查询、站站查询、线路查询和用户留言等功能。

[关键词]公交查询;JSP;Access

Bus Inquiry System Design and Implementation

RongLina

(Grade06,Class2, Computer science and technical, Computer science and technical Dept,Shaanxi

University of Technology,Hanzhong 723000,Shaanxi)

Tutor:Xue Yanhong

Abstract:

Query system is mainly used for public transportation bus lines travel inquiries and selection of convenience for people's travel, whether in money or manpower savings are significant, more importantly, significant savings in people's travel time, reduce late due to travel and people, the problem of delays. Today the face of rapid urbanization, the development of the continuous dense bus lines, an effective public transport query system on people's travel play an important role. The bus was on the bus line inquiry system of a simple query, mainly the use of JSP programming and Access database to achieve, including background of the establishment and maintenance of database and application development front two main queries to achieve the site, station query, line features such as query and the user message.

Key words:Bus Enquiries; JSP;Access

目 录

引 言 .................................................1

1.概述 .................................................2

1.1背景分析 .................................................................. 2

1.2本领域发展状况 ............................................................ 2

1.3开发目的及意义 ............................................................ 2

2.可行性分析 ...........................................3

2.1系统分析 ........................................................3

2.2 可行性研究 ......................................................3

2.2.1技术可行性 ..................................................3

2.2.2经济可行性 ..................................................3

2.2.3社会可行性 ..................................................3

3.需求分析 .............................................4

3.1应用需求分析 .............................................................. 4

3.2查询需求分析 .............................................................. 4

4.总体设计 .............................................5

4.1开发工具介绍 .............................................................. 5

4.1.1 JAVA语言介绍 ............................................................ 5

4.1.2 JSP技术介绍 .......................................................... 7

4.1.3 Access数据库介绍 .................................................... 10

4.2 系统分析................................................................. 11

4.2.1 B/S结构介绍 ......................................................... 11

4.2.2 系统整体结构说明 .................................................... 12

4.3 系统功能模块的划分....................................................... 12

4.4数据库设计 ............................................................... 15

4.4.1数据库概述 ........................................................... 15

4.4.2 数据库需求分析 ...................................................... 16

4.4.3数据库概念结构设计 ................................................... 17

4.4.4 数据库逻辑结构设计 .................................................. 18

5.详细设计 ............................................20

5.1 查询部分................................................................. 20

5.2 系统管理部分............................................................. 26

6.系统测试 ............................................36

6.1系统测试方案 ............................................................. 36

6.2 性能分析................................................................. 36

总 结 .................................................37

致 谢 .................................................38

参考文献 ..............................................39

外文资料 ..............................................40

外文资料翻译 ..........................................43

附 录 .................................................46

附录A:源码 ................................................................. 46

附录B:系统使用说明书 ....................................................... 73

引 言

我国城市公交乘客信息系统的发展处于一个较落后的水平,广大乘客可以获得信息的方式很少,为了解决这种问题,需要大力发展我国的城市公交乘客信息系统。而如今计算机网络发展非常迅速,时间的重要性对于人们来说不言而喻,人们出行越来越注重时间的节约,城市公交已经成为出行的一种主要的方式,本文结合公交运行的实际来对公交查询信息系统进行可行性研究,通过详实的问题定义与需求分析并且进行了合理的设计,通过对B/S模式、JDK开发环境及工具、Web发布服务、Access数据库的深入学习及实践,主要完成了公交查询系统的需求分析、数据库设计、应用程序设计的工作。

1.概述

1.1背景分析

这些年城市里面买私家车的人是越来越多,但是对于生活在这个城市里面的绝大多数人来说,上下班也好,出行也好,还是要通过那些公共交通工具的,比如说公交车。在极力保证城市可持续发展之路与还不发达的交通路线的情况下,如何让人们方便地出门成了各个城市管理部门所最关心的问题。随着经济的快速发展,城市规模的扩大和人口的增长,城市交通问题日益突出。与此同时,由于互联网的普及,网络给人们带来了很多便利,比如人们借助网络查询公交线路。在线查询公交信息,如今都被广大用户所接受。而我国目前的城市公交乘客信息系统发展却不够先进,广大乘客可以获得信息的途径不多,这给广大出行人士带来不便。针对这种现象,为加快发展城市公交信息化,设计一个城市公交查询系统具有一定的现实意义。

随着公路规模的不断扩大,公交数量的急剧增加,有关公交管理的各种信息量也在不断成倍增长。面对庞大的信息量,就需要有公交信息管理系统来提公交管理工作的效率。通过这样的系统,我们可以做到信息的规范管理和快速查询,从而减少了管理方面的工作量。

1.2本领域发展状况

我国城市公交乘客信息系统的发展处于一个较落后的水平,广大乘客可以获得信息的方式很少,为了解决这种问题,加快发展城市公交信息化,设计一个城市公交查询系统是具有一定实际应用意义的。

目前,我国各省市的公交查询工作还未实现数字化。整个过程既浪费能源又浪费资源。最后导致浪费时间,无法按时到达目的地。因此,开发一个能够对最新的公交线路进行查询的信息平台就显得尤其重要。所开发的系统将在一定程度上能够克服以上的种种缺点,实现各项工作在线完成,为乘客提供一个完全公开、开放、完善的管理平台,放便了乘客的出行,大大节省了乘客的宝贵时间。通过这样的系统,我们可以做到信息的规范管理和快速查询,实现了公交信息管理的系统化、规范化和自动化,这样不仅减少了管理工作量,还提高了查询效率,降低了查询成本。

1.3开发目的及意义

乘客可以获得的公交信息很少,而且方式主要是常规手段。我国乘客一般获得公交信息的方式局限于电话,交通图,向熟人问讯等常规方式。除去线路,站点等基本信息以外,有关班次,车辆到离站时间的信息基本上没有。我国实施城市的可持续发展之路,包括城市交通的可持续发展。所以大力提倡改善客运结构,大力发展公共交通。鉴于中国目前的经济发展状况,中国人出行还是以公交车为主,所以每个城市的公交系统都比较庞大。公交查询系统是近两年出现的新生事物,每个城市的发展状况也是有所不同。目前的公交查询系统,基本上具备一下功能:采用车站站点查询、车次查询、模糊查询、站至站查询四种查询形式,不仅能够查询到各条线路的起停站点,同时还能够分析出换乘车辆情况。因此,开发一个能够对最新的公交线路进行查询的信息平台就显得尤其重要。

开发此系统的意义在于,目前我国城市化的不断加快发展,公交线路的日益庞大和繁忙,能在外出时很快找到自己合适的路线是相当必要的,这样不论是在时间、金钱还是人力上都是一个大的节约。鉴于我国公交线路的发展和我国还是主要以公交车为外出交通工具的现状,一个公交系统的是否健全对人们的正常生活有着重要的作用,而公交查询系统更直接的影响着人们的外出,一个好的健全的公交查询系统为人们外出可以提供很大的帮助,故设计一个公交查询系统给广大出行人士具有一定的现实意义。

本节我们进行软件开发前期的可行性分析。我们将从以下几个方面对软件的可行性进行分析,以保证我们的软件可行,可信,为后续开发奠定良好基础。

2.1系统分析

面对如今我国城市化的快速发展而目前人们外出的主要交通工具仍是公交的现状,庞大的公交系统使人们在外出的时候就很难选择最有利于自己的乘车路线,方便而快捷的公交查询系统就成为人们不可或缺公交查询工具。此公交查询系统主要是实现公交的查询功相关功能,通过输入要查询的起始和目的地点就可以找到自己需要的乘车路线,然后选择最合适自己的路线。

2.2 可行性研究

可行性分析是在进行初步调查后所进行的对系统开发必要性和可能性的研究,所以也称为可行性研究。软件开发应从技术可行性,经济可行性和社会可行性三方面来论证。

2.2.1技术可行性

开发该系统所需的相关资料可以通过已存在的相关系统进行调查采集,所需的其他应用软件、硬件系统也易于获得.因此,开发成本较低。而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。

2.2.2经济可行性

系统在网络环境下,采用B/S形式的开发结构。系统采用模块化结构和规范化的代码结构,使得系统具有通用性、可扩充性及良好的可维护性。系统现阶段的发展过程中,使现有的资源能够开发出来,日后发展空间大,实现方法逐步简单容易。系统所用JSP开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:由于目前单机模式相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性高、价格低,完全能满足系统的需求。

2.2.3社会可行性

随着科学技术的迅猛发展,计算机已经得到了广泛的应用。几乎各行各业都有关于计算机的使用,这使得计算机已成为社会中普遍存在的事物。由于计算机的使用,使得人们在管理、应用及服务等各个领域使用数据方面变得更加简洁,更加方便,大大提高了工作效率,产生了以计算机为主体,以人为辅助的局面。在此我所设计的公交车查询系统就是为了方便人员在数据查询方面的操作,使得他们在日常生活中都会达到事半功倍的效果,减轻了人力的负担,方便了数据的存储,增加了安全性。

3.1应用需求分析

要设计一个良好的公交查询系统,就必须首先明确该应用环境对系统的要求。公交查询系统的应用背景为:方便市民搭乘公交车出行;手动(目前)、自动(将来)、及时更新查询数据。因此,该系统需满足以下几方面需求:

1)问题分析

(1)功能需求:该模块实现公交查询功能。该模块实现数据的录入、修改、删除功能。

(2)性能需求:系统的相应时间不能超过10ms

(3)出错处理需求:当输入的信息不全,或格式不正确时,提示出错信息。

2)问题描述

(1)信息要求:可实现按起点-中转站-终点查询查询和按线路查询两种查询方式。

(2)处理要求:该模块实现数据的录入、修改、删除功能。该模块由公交站点管理与公交线路管理两部分组成.

3)数据的更新修改:

更新:系统允许管理员级别的用户对数据进行更新、修改并且存盘操作;

编辑:系统允许管理员级别的用户对数据进行编辑、删除的操作,保证现库的真实性与实时性。

4)打印输出:系统可以将用户查询到的内容动态地生成报表,并打印输出。

3.2查询需求分析

为了保证系统能够长期、安全、稳定、可靠、高效地运行,公交查询系统应该满足以下性能需求:

(1)系统处理的准确性和及时性

系统处理的准确性和及时性是系统的必要性能。查询时应保证查全率,所有相应域包含查询关键字的记录都应能查到。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足系统管理员对信息处理的需求。响应时间,更新处理时间都比较迅速,完全满足用户要求。一般操作的响应时间应在1-2s内,对数据的导入、导出的操作也应在可接受的时间内完成。

(2)系统的开放性和系统的可扩充性

系统在开发过程中,应该充分考虑以后的可扩充性。例如,用户查询的需求也会不断地更新和完善。这就要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,即系统应是一个开放系统,只要符合一定的规范,可以简单地加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换,完成系统的升级和更新换代。

(3)系统的易用性和易维护性

系统是直接面对使用人员的,而使用人员往往对计算机并不是非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。所以在系统开发的时候就考虑到了这一点,只要用户知道本系统的网址就可以直接使用本系统的查询模块而无须用户注册及登陆,充分节约了用户查询的方便及随意性。其次,要实现本系统的易用性就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,在本系统中专门设置了“联系我们”这一网址链接,从而缩短用户对系统熟悉的过程,也可以让用户对本系统的不足之处让设计者知道,使系统更加完善。

4.总体设计

4.1开发工具介绍

4.1.1 Java语言介绍

1)Java 语言简介

Java是一种跨平台,适合于分布式计算环境的面向对象编程语言。具体来说,它具有如下特性:

简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。

下面我们将重点介绍Java语言的面向对象、平台无关、分布式、多线程、可靠和安全等特性。

(1)面向对象

面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。

所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。Java语言的封装性较强,因为Java无全程变量,无主函数,在Java中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java也提供了相应的对象类型以便与其他对象交互操作。

多态性就是多种表现形式,具体来说,可以用“一个对外接口,多个内在实现方法”表示。举一个例子,计算机中的堆栈可以存储各种格式的数据,包括整型,浮点或字符。不管存储的是何种数据,堆栈的算法实现是一样的。针对不同的数据类型,编程人员不必手工选择,只需使用统一接口名,系统可自动选择。运算符重载(operator overload)一直被认为是一种优秀的多态机制体现,但由于考虑到它会使程序变得难以理解,所以Java最后还是把它取消了。

继承是指一个对象直接使用另一对象的属性和方法。事实上,我们遇到的很多实体都有继承的含义。例如,若把汽车看成一个实体,它可以分成多个子实体,如:卡车、公共汽车等。这些子实体都具有汽车的特性,因此,汽车是它们的“父亲”,而这些子实体则是汽车的“孩子”。Java提供给用户一系列类(class),Java的类有层次结构,子类可以继承父类的属性和方法。与另外一些面向对象编程语言不同,Java只支持单一继承。

(2)平台无关性

Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。平台无关有两种:源代码级和目标代码级。C和C++具有一定程度的源代码级平台无关,表明用C或C++写的应用程序不用修改只需重新编译就可以在不同平台上运行。

Java主要靠Java虚拟机(JVM)在目标码级实现平台无关性。JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。但JVM通常是在软件上而不是在硬件上实现。(目前,SUN系统公司已经设计实现了Java芯片,主要使用在网络计算机NC上。

另外,Java芯片的出现也会使Java更容易嵌入到家用电器中。)JVM是Java平台无关的基础,在JVM上,有一个Java解释器用来解释Java编译器编译后的程序。Java编程人员在编写完程序后,通过Java编译器将Java源程序编译为JVM的字节代码。任何一台机器只要配备了Java解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。另外,Java采用的是基于IEEE标准的数据类型。通过JVM保证数据类型的一致性,也确保了Java

的平台无关性。

Java的平台无关性具有深远意义。首先,它使得编程人员所梦寐以求的事情(开发一次软件在任意平台上运行)变成事实,这将大大加快和促进软件产品的开发。其次Java的平台无关性正好迎合了“网络计算机”思想。如果大量常用的应用软件(如字处理软件等)都用Java重新编写,并且放在某个Internet服务器上,那么具有NC的用户将不需要占用大量空间安装软件,他们只需要一个Java解释器,每当需要使用某种应用软件时,下载该软件的字节代码即可,运行结果也可以发回服务器。目前,已有数家公司开始使用这种新型的计算模式构筑自己的企业信息系统。

(3)分布式

分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同主机上,操作分布是指把一个计算分散在不同主机上处理。 Java支持WWW客户机/服务器计算模式,因此,它支持这两种分布性。对于前者,Java提供了一个叫作URL的对象,利用这个对象,你可以打开并访问具有相同URL地址上的对象,访问方式与访问本地文件系统相同。对于后者,Java的applet小程序可以从服务器下载到客户端,即部分计算在客户端进行,提高系统执行效率。

Java提供了一整套网络类库,开发人员可以利用类库进行网络程序设计,方便得实现Java的分布式特性。

(4)可靠性和安全性

Java最初设计目的是应用于电子类消费产品,因此要求较高的可靠性。Java虽然源于C++,但它消除了许多C++不可靠因素,可以防止许多编程错误。首先,Java是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠;其次,Java不支持指针,这杜绝了内存的非法访问;第三,Java的自动单元收集防止了内存丢失等动态内存分配导致的问题;第四,Java解释器运行时实施检查,可以发现数组和字符串访问的越界,最后,Java提供了异常处理机制,程序员可以把一组错误代码放在一个地方,这样可以简化错误处理任务便于恢复。

由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载程序执行就非常危险。Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。当Java字节码进入解释器时,首先必须经过字节码校验器的检查,然后,Java解释器将决定程序中类的内存布局,随后,类装载器负责把来自网络的类装载到单独的内存区域,避免应用程序之间相互干扰破坏。最后,客户端用户还可以限制从网络上装载的类只能访问某些文件系统。

上述几种机制结合起来,使得Java成为安全的编程语言。

(5)多线程

线程是操作系统的一种新概念,它又被称作轻量进程,是比传统进程更小的可并发执行的单位。

C和C++采用单线程体系结构,而Java却提供了多线程支持。Java在两方面支持多线程。一方面,Java环境本身就是多线程的。若干个系统线程运行负责必要的无用单元回收,系统维护等系统级操作;另一方面,Java语言内置多线程控制,可以大大简化多线程应用程序开发。Java提供了一个类Thread,由它负责启动运行,终止线程,并可检查线程状态。Java的线程还包括一组同步原语。这些原语负责对线程实行并发控制。利用Java的多线程编程接口,开发人员可以方便得写出支持多线程的应用程序,提高程序执行效率。必须注意地是,Java的多线程支持在一定程度上受运行时支持平台的限制。例如,如果操作系统本身不支持多线程,Java的多线程特性可能就表现不出来。

2)Java技术平台简介

(1)JavaSE:Java Platform,Standard Edition

J2SE 包含那些构成Java语言核心的类。比如:数据库连接、接口定义、输入/输出、网络编程,主要用于桌面应用软件的编程。

(2)JavaME:Java 2 Micro Edition

J2ME是Java 2的一个组成部分,它与J2SE、J2EE并称。根据Sun的定义:J2ME是一种高度优化的Java运行环境,主要针对消费类电子设备的,例如蜂窝电话和可视电话、数字机顶盒、汽车导航系统等等。J2ME技术在1999年的JavaOne Developer Conference大会上正式推出,它将Java语言的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。

(3)JavaEE:Java Platform,Enterprise Edition

J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBC 、PI、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。

3)Java 程序框架

public class HelloSODI {//外层框架

public static void main(String[ ] args) {//Java入口程序框架

这里填写代码!...

}

}

4)Java 优点

(1)跨越平台的限制

尽管目前Windows桌面系统一统天下,但是服务器系统采用的操作系统却具有多样性,包括Linux、Unix、Windows NT/2000Server等系统都可以实现企业级应用。即便是桌面系统,中国政府出于安全和国家战略的考虑,希望有自己的操作系统,Linux的出现使这种想法变成了现实,不久也许国产的Linux系统将占据更多桌面系统的市场份额。

传统的C/S架构的软件需要针对不同的操作系统开发不同版本的软件,面对众多的操作系统和软件快速的升级换代, 采用这一架构开发软件,对于企业的IT投资无疑是一种巨大的风险。而采用Java语言实现的B/S架构的软件产品真正做到了“一次编写处处运行(Write Once, Run Anywhere)” ,对企业而言,可以规避将来更换操作系统所带来的风险。

(2)健壮的系统

Java语言实现的软件具有天然的健壮性。这是Java语言自身的特性保证的。利用Java写成的软件几乎不可能造成系统崩溃,这正是安全性要求很高的企业级应用所不可或缺的特性。

4.1.2 JSP技术介绍

1)JSP与ASP的简单比较

JSP 与 Microsoft 的 ASP 技术非常相似。两者都提供在 HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。在 ASP 或 JSP 环境下, HTML 代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的 HTML 页面只依赖于 Web 服务器,而 ASP 和 JSP 页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到 HTML 代码中,然后一起发送给浏览器。 ASP 和 JSP 都是面向 Web 服务器的技术,客户端浏览器不需要任何附加的软件支持。

ASP 的编程语言是 VBScript 之类的脚本语言, JSP 使用的是 Java ,这是两者最明显的区别。此外, ASP 与 JSP 还有一个更为本质的区别:两种语言引擎用完全不同的方式处理页面中嵌入的程序代码。在 ASP 下, VBScript 代码被 ASP 引擎解释执行;在 JSP 下,代码被编译成 Servlet 并由 Java 虚拟机执行,这种编译操作仅在对 JSP 页面的第一次请求时发生。

2)JSP运行环境

Sun 公司的 JSP 主页在 /products/jsp/index.html ,从这

里还可以下载 JSP 规范,这些规范定义了供应商在创建 JSP 引擎时所必须遵从的一些规则。

在运行 JSP 示例页面之前,请注意一下安装 JSWDK 的目录,特别是“ work ”子目录下的内容。执行示例页面时,可以在这里看到 JSP 页面如何被转换成 Java 源文件,然后又被编译成 class 文件(即 Servlet )。 JSWDK 软件包中的示例页面分为两类,它们或者是 JSP 文件,或者是包含一个表单的 HTML 文件,这些表单均由 JSP 代码处理。与 ASP 一样, JSP 中的 Java 代码均在服务器端执行。因此,在浏览器中使用“查看源文件”菜单是无法看到 JSP 源代码的,只能看到结果 HTML 代码。所有示例的源代码均通过一个单独的“ examples ”页面提供。

3)JSP页面示例

下面我们分析一个简单的 JSP 页面。您可以在 JSWDK 的 examples 目录下创建另外一个目录存放此文件,文件名字可以任意,但扩展名必须为 .jsp 。从下面的代码清单中可以看到, JSP 页面除了比普通 HTML 页面多一些 Java 代码外,两者具有基本相同的结构。 Java 代码是通过 < % 和 %> 符号加入到 HTML 代码中间的,它的主要功能是生成并显示一个从 0 到 9 的字符串。在这个字符串的前面和后面都是一些通过 HTML 代码输出的文本。 < html> < head>< title>JSP 页面 < /title>< /head> < body> < %@ page language="java" %> < %! String str="0"; %> < % for (int i=1; i < 10; i++) { str = str + i;} %> JSP 输出之前。

< p>

< %= str %>

</ p>

JSP 输出之后。

< /body>

< /html>

这个 JSP 页面可以分成几个部分来分析:

首先是 JSP 指令。它描述的是页面的基本信息,如所使用的语言、是否维持会话状态、是否使用缓冲等。 JSP 指令由 < %@ 开始, %> 结束。在本例中,指令“ < %@ page language="java" %> ”只简单地定义了本例使用的是 Java 语言(当前,在 JSP 规范中 Java 是唯一被支持的语言)。 接下来的是 JSP 声明。 JSP 声明可以看成是定义类这一层次的变量和方法的地方。 JSP 声明由 < %! 开始, %> 结束。如本例中的“ < %! String str="0"; %> ”定义了一个字符串变量。在每一项声明的后面都必须有一个分号,就象在普通 Java 类中声明成员变量一样。 位于 < % 和 %> 之间的代码块是描述 JSP 页面处理逻辑的 Java 代码,如本例中的 for 循环所示。 最后,位于 < %= 和 %> 之间的代码称为 JSP 表达式,如本例中的“ < %= str %> ”所示。 JSP 表达式提供了一种将 JSP 生成的数值嵌入 HTML 页面的简单方法。

会话状态维持是 Web 应用开发者必须面对的问题。有多种方法可以用来解决这个问题,如使用 Cookies 、隐藏的表单输入域,或直接将状态信息附加到 URL 中。 Java Servlet 提供了一个在多个请求之间持续有效的会话对象,该对象允许用户存储和提取会话状态信息。 JSP 也同样支持 Servlet 中的这个概念。

在 Sun 的 JSP 指南 中可以看到许多有关隐含对象的说明(隐含的含义是,这些对象可以直接引用,不需要显式地声明,也不需要专门的代码创建其实例)。例如 request 对象,它是 HttpServletRequest 的一个子类。该对象包含了所有有关当前浏览器请求的信息,包

括 Cookies , HTML 表单变量等等。 session 对象也是这样一个隐含对象。这个对象在第一个 JSP 页面被装载时自动创建,并被关联到 request 对象上。与 ASP 中的会话对象相似, JSP 中的 session 对象对于那些希望通过多个页面完成一个事务的应用是非常有用的。 为说明 session 对象的具体应用,接下来我们用三个页面模拟一个多页面的 Web 应用。第一个页面( q1.html )仅包含一个要求输入用户名字的 HTML 表单,代码如下: < html>

< body>

< FORM METHOD=POST ACTION="q2.jsp">

请输入您的姓名:

< INPUT TYPE=TEXT NAME="thename">

<INPUT TYPE=SUBMIT VALUE="SUBMIT">

< /FORM>

< /body>

< /html>

第二个页面是一个 JSP 页面( q2.jsp ),它通过 request 对象提取 q1.html 表单中的 thename 值,将它存储为 name 变量,然后将这个 name 值保存到 session 对象中。 session 对象是一个名字 / 值对的集合,在这里,名字 / 值对中的名字为“ thename ”,值即为 name 变量的值。由于 session 对象在会话期间是一直有效的,因此这里保存的变量对后继的页面也有效。 q2.jsp 的另外一个任务是询问第二个问题。下面是它的代码: < html> < body> < %@ page language="java" %>

< %! String name=""; %>

< % name = request.getParameter("thename");

session.putValue("thename", name);%>

您的姓名是: < %= name %>

< p>

< form method=post action="q3.jsp">

您喜欢吃什么 ?

< input type=text name="food">

</p>

< input type=submit value="SUBMIT">

< /form>

< /body>

< /html>

第三个页面也是一个 JSP 页面( q3.jsp ),主要任务是显示问答结果。它从 session 对象提取 thename 的值并显示它,以此证明虽然该值在第一个页面输入,但通过 session 对象得以保留。 q3.jsp 的另外一个任务是提取在第二个页面中的用户输入并显示它:

< html>

< body>

< %@ page language="java" %>

< %! String food=""; %>

< %

food = request.getParameter("food"); String name = (String) session.getValue("thename");

%>

您的姓名是: < %= name %>

< /p> 您喜欢吃: < %= food %>

< /body>

< /html>

4.1.3 Access数据库介绍

Access是Office 系列软件中用来专门管理数据库的应用软件,它可以运行于各种Windows 系统环境中。由于Access继承了Windows的特性,不仅易于使用,而且界面友好,因此被用户广泛采用。使用Access的时候不需要数据库管理者具有专业的程序设计水平,任何非专业的用户都可以用它来创建功能强大的数据库管理系统。

Access使用标准的SQL(Structured Query Language,结构化查询语言)作为它的数据库语言,从而提供了强大的数据处理能力和通用性,使其成为一个功能强大而且易于使用的桌面关系型数据库管理系统和应用程序生成器。一个Access数据库可以包含表、查询、窗体、报表、宏、模块以及数据访问页,不同于传统的桌面数据库(dbase、 FoxPro、Paradox),Access数据库使用单一的*.mdb文件管理所有的信息,这种针对数据库集成的最优化文件结构不仅包括数据本身,也包括了它的支持对象。

1)Access数据库的七种对象:

表(Table) ——表是数据库的基本对象,是创建其他5种对象的基础。表由记录组成,记录由字段组成,表用来存贮数据库的数据,故又称数据表。

查询(Query)——查询可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。

窗体(Form)——窗体提供了一种方便的浏览、输入及更改数据的窗口。还可以创建子窗体显示相关联的表的内容。窗体也称表单。

报表(Report)——报表的功能是将数据库中的数据分类汇总,然后打印出来,以便分析。 宏(Macro)——宏相当于DOS中的批处理,用来自动执行一系列操作。Access列出了一些常用的操作供用户选择,使用起来十分方便。

模块(Module)——模块的功能与宏类似,但它定义的操作比宏更精细和复杂,用户可以根据自己的需要编写程序。模块使用Visual Basic编程。

页——是一种特殊的直接连接到数据库中数据的一种WEB页。通过数据访问页将数据发布到Internet 或Intranet上,并可以适用浏览器进行数据的维护和操作。

2)Access的优点:

(1)存储方式单一

Access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb)的数据库文件种,便于用户的操作和管理。

(2)面向对象

Access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。它将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为和外国,用户还可以按需要给对象扩展方法和属性。通过对象的方法、属性完成数据库的操作和管理,极大地简化了用户的开发工作。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。

(3)界面友好、易操作

Access是一个可视化工具,是风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。

(4)集成环境、处理多种数据信息

Access基于Windows操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。

(5)Access支持ODBC(开发数据库互连,Open Data Base Connectivity)

利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。Access还可以将程序应用于网络,并与网络上的动态数据相联接。利用数据库访问页对象生成HTML文件,轻松构建Internet/Intranet的应用。

3)Access的缺点:

Access是小型数据库,既然是小型就有他根本的局限性,以下几种情况下数据库基本上会吃不消:

(1)数据库过大,一般ACCESS数据库达到50M左右的时候性能会急剧下降!

(2)网站访问频繁,经常达到100人左右的在线。

(3)记录数过多,一般记录数达到10万条左右的时候性能就会急剧下降!

4.2 系统分析

4.2.1 B/S结构介绍

本系统所面向的对象是广大的互连网用户。因此,将要采用比较流行的B/S三层结构。B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起而对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑在服务器端(Server)实现。大大简化了客户端电脑载荷,减少了系统维护与升级的成本和工作量,降低了用户的总体成本。B/S方式可以形成所谓三层以上的结构。B/S结构是一次到位开发,能实现不同人员,从不同地点,以不同的接入方式访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更为方便、快捷、高效。B/S工作机制如图4.1所示:

传统的C/S架构(客户机/服务器,Client/Server)方式中,业务逻辑位于客户端,每完成一项事务,都要频繁地访问数据库,使得网络上数据流量非常大,对于慢速连接的用户,甚至无法使用。

图 4.1 B/S工作机制

B/S体系结构与C/S体系结构相比不仅具有其全部的优点,而且又有C/S体系结构所不具备的独特优势:

(1)开放的标准:B/S所采用的标准都是开放的、非专用的,是经过标准化组织所确定而非单一厂商所制定,保证了其应用的通用性和跨平台性。

(2)较低的开发和维护成本:B/S的应用只需在客户端安装通用的浏览器即可,维护和升级工作都在服务器端进行,不需对客户端进行任何改变,故而大大降低了开发和维护的成本。

(3)用户使用简单,界面友好:B/S用户的界面都在统一的浏览器上,浏览器易于使用、界面友好,又因为它不再负责数据的存取和复杂数据计算等任务,只需要进行显示,因而大大降低了对客户端的要求。

从以上的分析与比较可以看出,B/S模式具有C/S模式无法替代的优越性:它简化了系统

的开发和维护,并且特别适用于网上信息发布。因此,我开发的网上购物系统采用了基于B/S模式的体系结构。

4.2.2 系统整体结构说明

该系统包括前台和后台两部分,主要包括用登陆、站点输入、线路输出、站点修改、线路更新等功能。系统的整体功能模块图如图4.2所示:

图4.2 整体功能模块图 4.3 系统功能模块的划分

公交查询系统功能划分模块如下:

1)查询系统模块 该模块实现公交查询功能。可实现按起点-中转站-终点查询查询和按线路查询两种查询方式。

图4.3查询系统模块

2)录入系统模块

该模块实现数据的录入、修改、删除功能。该模块由公交站点管理与公交线路管理两部分组成.详细设计视图如图4.4录入系统模块所示:

图4.4 录入系统模块

3)信息输入输出模块如图4.5所示:

图4.5信息输出模块

4.4数据库设计

4.4.1数据库概述

数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于60年代末。现已形成相当规模的理论体系和实用技术。优秀的数据库设计是应用成功的基石。

1) 数据库体系结构

数据的体系结构分成三级:内部级(Internal),概念级(Conceptual)和外部级(External)。这个三级结构有时也称为“三级模式结构”。

(1)外部级:最接近用户,是单个用户所能看到的数据特性。单个用户使用的数据视图的描述称为“外模式”。

(2)概念级:涉及到所有用户的数据定义、是全局的数据视图。全局视图的描述称为“概念模式”。

(3)内部级:最接近于物理存储设备,涉及到实际数据存储的结构物理存储数据视图的描述称为“内模式”。

数据库的三级模式结构是数据的三个抽象级别。它把数据的具体组织留给DBMS去做,用户只要抽象地处理数据,而不必关心数据在计算机中的表示和存储,这样就减轻了用户使用系统的负担。

2) 数据库管理系统(DBMS)

数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。DBMS是数据库系统的核心组成部分。对数据库的一切操作,包括定义、查询、更新及各种控制,都是通过DBMS进行的。

在不同的计算机系统中,由于缺乏统一的标准,即使同种数据模型的DBMS,它们在用户接口、系统功能方面也常常是不相同的。

用户对数据库进行操作,是由DBMS把操作从应用程序带到外部级、概念级、再导向内部级,进而操作存储器中的数据。DBMS的主要目标,是使数据作为一种可管理的资源处理。

DBMS的主要功能为:

(1)数据库定义功能:DBMS提供数据定义语言(DDL)定义数据库的三级结构,包括外模式、概念模式、内模式及基相互之间的映象,定义数据的完整性、安全控制等约束。因此,在DBMS中应包括DDL的编译程序。

(2)数据库的操纵功能:DBMS提供数据操纵语言(DML)实现对数据库中数据的操作。基本的数据操作分成两类四种:检索(查询)、更新(插入、删除、修改)

(3)数据库的保护功能:数据库中的数据是信息社会的战略资源,对数据的保护是至关重要的大事。

(4)数据库的恢复:在数据库被破坏或数据不正确时,系统有能力把数据库恢复到正确的状态。

(5)数据库的并发控制:DBMS的并发控制子系统能防止错误发生,正确处理好多用户、多任务环境下的并发操作。

(6)数据库的完整性控制:保证数据库中数据及语义的正确性和有效性,防止任何对数据造成错误的操作。

(7)数据库的安全性控制:防止未经授权的用户蓄谋或无意地存取数据库中的数据,以免数据的泄露、更改或破坏。

(8)数据库的存储管理:把各种DML语句转换成低层的文件系统命令,起到数据的存储、检索和更新的作用。

(9)数据库的维护功能:它有许多实用程序提供给数据库管理员:

数据装载程序

备份程序 文件重组织程序

性能监控程序

(10)数据字典:数据库系统中存放三级结构定义的数据库称为数据字典(DD)。对数据库的操作都要通过访问DD才能实现,通常DD中还存放数据库运行时的统计信息。

4.4.2 数据库需求分析

用户的需求具体体现在对各种信息的提供、保存、更新和查询等方面。因此,一个满足要求的数据库必须充分满足对各种信息的输入输出需要。

公交查询系统应满足以下信息需求:

管理员必须先登录系统后台管理才能对系统中线路、站点等信息进行添加、删除、修改等工作。

普通用户不需进行注册就可以直接查询相关信息。

一辆公交车经过多个站点。

每个站点有多辆公交叫信息。

一辆公交只有一条行驶线路。 一条线路包括多个站点。

综合上面对网上购物系统数据库的需求分析,考虑到未来功能上的扩展,设计如下的数据项结构:

管理员信息包括的数据项:帐号、姓名和密码。

本文来源:https://www.bwwdw.com/article/ja71.html

Top