基于java出租车计价器设计与实现(论文+源码)

毕业设计(论文)任务书

毕业设计(论文)题目:出租车计价器设计与实现毕业设计(论文)要求及原始数据(资料):1.了解并掌握基于java的相关技术,例如JSP、servlet等;2.掌握出租车计价系统的编写,如计价系统的结构,数据插入,数据查询,数据修改。3.设计并优化出租车计价的算法;4.了解并查询出租车的计价因素;5.训练撰写技术文档与学位论文的能力。
毕业设计(论文)主要内容:1.学习并掌握关于java语言的基本内容。2.了解javaEE的一些知识,使项目变得简单、高效一些;3.熟悉java编辑器的大体操作。4.掌握java语言编写数据整体框架的构架5.适当对于出租车计费系统的算发进行优化,是整个系统简洁高效。学生应交出的设计文件(论文):1.内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2.包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。
主要参考文献[1]刘浩.Java从入门到精通[M]. 北京:人民邮电出版社,2010:7-10.[2]印旻.Java语言与面向对象程序设计[M]. 北京:清华大学出版社,2000:88-102.[3]LJ. ARACIL,D.MORATO,M.IZAL.Analysis and stochastic characterization of TCP lows[J].The Public Access Computer Systems Review,1993.4.9-5.6[4]程峰,黄若波译. JAVA核心技术卷Ⅰ:基础知识[M].北京:机械工业出版社,2005.4.3-5.7[5]孙培生.出租车计价器.中国计量出版社,1999.11[6]唐红亮,刘家愚,冯茂岩,郑有增.计算机专业毕业设计指导(第2版),科学出版社.北京科海电子出版社,科学出版社,2008.2[7]张颖.多功能出租车计价器的设计.计算机与信息技术,2009.9[8]张秀娥.叶哲江等.出租车计价器的软件设计.山西电子技术,2007.4[9]高书莉.罗朝霞.可编辑逻辑设计技术及应用.人民邮电出版社,2004.3[10]洪传文.出租车计价器的原理及应用[J].技术监督与服务,1997[11]Jone Wulenskl.VHDL Digtal System Design[D],电子工业出版社,2004.10-10.5专业班级学生要求设计(论文)工作起止日期2015年3月23日~2015年7月3日指导老师签字日期2015年3月23日教研室主任审查签字日期系主任批准签字日期

出租车计价器设计与实现

摘 要

在我国,出租车行业是八十年代初兴起的一项新兴行业,随着出租车的产生,计价器也就应运而生。但当时在全国没有一家企业能够生产,因而那个时期的计价器是由台湾引进。台湾是计价器的主要生产场地,目前全世界的计价器中有90%为台湾生产。现今我国生产计价器的企业有上百家,主要是集中在北京.上海.沈阳和广州等地。在我国,经济尚处于发展阶段,由于人民的生活水平以及道路交通的限制,私家汽车的拥有率在短期内不会有较大的提高,因此出租车扮演者重要的角色。出租车计价器则是出则车上必不可少的重要仪器,它是负责出租车应运收费的专用智能化仪表。我国的第一家生产计价器企业是重庆市起重机厂,最早的计价器全部采用机械齿轮结构,只能完成简单的计程功能,可以说早期的计价器就是一个里程表。随着科学技术的发展,产生了第二代计价器。它采用了手摇计算机与机械结构相结合的方式,实现了半机械半电子化。此时它在计程的同时还可以完成计价的工作。大规模集成电路的发展又产生了第三代计价器,也就是全电子化的计价器。它的功能也在不断完善.当单片机出现并应用于计价器后,现代出租车计价器的模型也就基本具备了,它可以完成计程,计价,显示等基本工作。

在出租车是城市交通的重要组成部分,行业健康和发展也获得越来越多的关注。汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是十分有应用价值的。出租车计价器不仅可以解决电子系统小型化、低功耗、高可靠性等问题,而且其开发周期短、开发软件投入少、,特别是对小批量、多品种的产品需求。通过本课题的设计,能够综合运用学过的数字系统、C#语言等知识,学习MyEclipse软件编辑器与jdk软件编辑器的使用方法。研究内容:按照计费标准能实现计费功能。计价器是出租汽车的经营者和乘坐出租汽车的消费者之间用于公平贸易结算的工具,因而计价器计价准确与否,直接关系到经营者和消费者的经济利益。依据国家有关法律、法规,出租汽车计价器是列入国家首批强制检定的工作计量器具之一,也是近年来国家质量技术监督部门强化管理的六类重点计量器具之一。在出租车是城市交通的重要组成部分,行业健康和发展也获得越来越多的关注。汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。

关键词:出租车计价系统;java语言;MyEclipse软件编辑器;Jdk软件编辑器;单片机

The taxi pricing system design andimplementationof a taxi

valuation system design and implementation

Abstract

In our country, the taxi industry is rising in the early eighty s, a new industry with a taxi, the meter is also arises at the historic moment.But at that time, no firm can produce throughout the country, and the period of the meter is introduced from Taiwan.Taiwan is the main production area of the meter, 90% of the world of the meter for production in Taiwan.Today hundreds meter production enterprises in China, mainly concentrated in Beijing. Shanghai. Shenyang and guangzhou and other http://places.In China, the economy was still in the stage of development, people's living standard and the limitation of road traffic, private car ownership in the short term will not have a larger increase, thus played a crucial role for the taxi.The taxi meter is an important instrument is out of the car, it is responsible for the taxi should charge special intelligent instrument.Our country is the first production of the meter enterprises crane factory in chongqing, one of the earliest meter are all made of mechanical gear structure, can only do simple log function, a meter of the meter is an early, so to speak.With the development of science and technology, the second generation of the meter.It USES the hand computer with a combination of mechanical structure, realizes the mechanical and electronic.At this point it at the time of log can also complete the valuation work.The development of large scale integrated circuit and the third generation of the meter, which is all electronic meter.Its functions are perfect. After the single-chip computer appeared and applied to the meter, modern model is basically the taxi meters, it can complete the log, valuation, the basic work. Such as show.
In the taxi is an important part of urban traffic, industry growth, health and get more and more attention.Auto meter is rule of passengers and the driver both sides of the transaction, it is an important symbol of the taxi industry development, is the most important tools in the taxi.It was about the interests of both parties.Have good performance of the meter to the taxi driver friend or passengers is very necessary.Therefore, the study of the auto meter is also very has the application value.Taxi meter can not only solve the electronic system miniaturization, low power consumption, high reliability, and the software development cycle is short, low cost, and especially for small batch and many varieties of product demand.Through this topic design, can the integrated use of learned knowledge such as digital system, the c # language, learning MyEclipse software editor with the use of the JDK software editor.The research content: according to the charging standards can realize functions.Is the meter taxi operators and taking a taxi consumers between tool for fair trade settlement, therefore the meter denominated in accurate or not, is directly related to the economic interests of the operators and consumers.According to relevant state laws and regulations, and the taxi meter is included in one of the first batch of national compulsory verification work measuring instruments, and in recent years, the state administration of quality and technical supervision departments strengthen the management of one of the six key measuring http://instruments.In the taxi is an important part of urban traffic, industry growth, health and get more and more attention.Auto meter is rule of passengers and the driver both sides of the transaction, it is an important symbol of the taxi industry development, is the most important tools in the taxi.It was about the interests of both parties.Have good performance of the meter to the taxi driver friend or passengers is very necessary.

Keywords: taxi billing system ;MyEclipse ;Java language ;

software (t1) editorThe Jdk; single-chip microcomputer software editor

目 录

1绪论1

1.1 系统开发背景1

1.2 系统开发目的2

1.3 系统开发目标2

2系统开发技术和工具3

1.4 系统开发的工具3

1.4.1 MyEclipse 8.53

1.4.2 Tomcat 6.04

1.4.3 SQLyog6

1.5 系统开发技术6

1.5.1 编程框架6

1.5.2 Java的基本概念6

1.5.3 Java 层结构的特点7

1.5.4 MVC框架8

1.5.5 Swing8

1.5.6 Jpanel9

1.5.7 Java多线程9

2 可行性分析10

2.1 可行性分析10

2.1.1 技术可行性10

2.1.2 经济可行性10

2.1.3 操作可行性10

2.2 设计目标10

2.3 功能要求11

2.3.1 出租车维护11

2.3.2 司机信息的维护11

2.3.3 订单信息的生成11

2.3.4 订单信息的维护11

2.4 系统开发环境配置12

2.5 系统开发工具12

2.5.1 开发语言—JSPJSP12

2.5.2 Eclipse简介13

2.5.3 Tomcat简介14

3 需求分析16

3.1 需求分析描述16

3.1.1 需求分析的任务16

3.2 本系统的需求17

3.2.1 系统的要求17

3.2.2 系统实现目标17

3.3 系统流程图、数据流图和数据字典17

3.3.1 系统流程图17

3.3.2 数据流图18

3.3.3 数据字典19

4 概要设计21

4.1 概要设计引入21

4.1.1 概要设计引入21

4.1.2 概要设计的任务21

4.2 系统功能模块22

4.2.1 系统功能模块描述22

4.2.2 系统功能模块层次方框图22

4.3 系统数据库设计23

4.3.1 概念数据模型23

4.3.2 数据库表24

5 详细设计及实现编码27

5.1 详细设计概述27

5.2 系统各功能模块的实现27

5.2.1 系统程序流程图27

5.2.2 用户登录流程图28

5.2.3 修改资料流程图28

5.2.4 查询资料流程图29

5.2.5 系统各模块界面32

结束语35

致谢36

主要参考文献37

外文文献及翻译38

1绪论

随着我国经济的迅速发展,人民生活水平的显著提高,城市的交通日趋完善,虽然私家车的拥有量在大幅度的提高,但出租车仍然是城市交通的重要组成部分,行业健康和发展也获得越来越多的关注。汽车计价器是乘客与司机双方的交易准则,它关系着交易双方的利益。具有良好性能的计价器无论是对出租车司机朋友还是乘客来说都是十分的有必要。所以,出租车计价器的研究非常的有价值。该出租车计费系统的设计包括(1)出租车信息模块,始终包含:出租车辆的车型,出租车辆的车牌号,出租车辆是否维修,可以实现基本信息的维护,增加,修改,删除。(2)司机管理模块包含:司机信息设置,司机职务设置,司机学历,司机编号,司机生日等,可以实现对司机的基本信息如:员工编号,姓名等的查询,增加,修改,删除。(3)计价模块包含:通过旅客点击派车,从而使得出租车按照时间生成一个订单,插入到订单表中(4)订单模块包含:订单数汇总,打印订单数,可以实现查看订单数,并且将这些数据打印出来。出租车计费系统可以大大降低出租车的成本,为出租车公司运营管理公司提供灵活的销售策略和强力可靠的运营平台,给用户全新的打车体验和便捷的打车服务。可以想见,出租车系统即将在新媒体时代,成为推动出租车增加的助推器。为整个出租车行业向数字化,多媒体化的转变起到关键性的作用。其将是出租车行业发展的重要标志,成为是出租车行业最重要的工具。

系统开发背景

随着出租车市场竞争的日益激烈,出租车计价事业正面临着一个前所未有的发展时机,抓住机遇,迅速的响应市场,是出租车企业获得竞争优势刻不容缓的任务。信息产业的飞速发展以及技术水平的提高,使我们能够紧跟时代发展,建立先进的信息化的处理平台,将科学技术和企业的优秀管理经验结合起来,推动企业的进步和发展。

基于对出租车计价业务数据管理的复杂性和重要性的深刻理解,我们推出了出租车计价器系统,实现了对出租车计价业务流程的合理规划和基础数据的整合,为出租车企业全面、及时、准确的处理业务提供了基本保证,同时为企业的内部管理和决策支持提供了坚实的数据基础和分析手段。

  1. 系统开发目的
    出租车计价系统可以大大降低出租车运营的成本,为出租车运营管理公司提供灵活的销售策略和强力可靠的运营平台,给用户全新的打车体验和便捷的打车服务。可以想见,出租车系统即将在新媒体时代,成为推动出租车增加的助推器。为整个出租车行业向数字化,多媒体化的转变起到关键性的作用。
  2. 系统开发目标
    1. 通过设计合理的、规范化的数据存储结构,对企业的基础数据进行有效的组织、维护,提供统一的基础数据管理平台。
    2. 为其他子系统的运行提供共享数据环境,减少数据冗余,提高管理效率。
    3. 灵活设置业务管理中需要的价格、日期等参数。
    4. 提供对出租车、司机、订单的设置和管理。
    5. 采用的是矩阵式的权限管理和各级数据的校验,经过各个层次的数据的保密,面向不同的用户,分配不同的权限,并体现不同的界面,从而使得操作更加的方便与安全。
    6. 为各子系统提供综合服务功能。
      2系统开发技术和工具

  1. 系统开发的工具

MySQL数据库

MySQL是个关系数据库管理系统,MySQL关系数据库管理系统,在WEB应用程序中最受欢迎的MySQL是最好的RDBMS(关系数据库管理系统、关系数据库管理系统),应用软件之一。MySQL是一个关系数据库管理系统,关系数据库数据存储在不同的表中,而不是把所有的数据放在一个大仓库,从而增加的速度和增加灵活性。MySQL使用SQL语言是一种最常用的标准化语言访问数据库。MySQL软件采用双授权策略(这个术语“授权政策”),它分为社区版和商业版本,由于其体积小、速度快、总体拥有成本低,开源的特性,特别是中小网站的发展,通常选择MySQL作为数据库的网站。MySQL开发人员的初衷是使用mSQL和快速低级的例程(ISAM)连接到表单。经过一些测试,开发人员得出结论:mSQL他们不需要那么快和灵活。这导致使用几乎像mSQL API接口用于生产他们的新SQL数据库接口,这样,mSQL写的API允许第三方代码更容易迁移到MySQL。

MySQL[2]这个名字怎么还不清楚。基本准则和大量的库和工具与前缀“我”已经有超过十年,和在任何情况下,MySQL AB的创始人之一的女儿是我的。两个MySQL给出什么名字仍然是一个谜到目前为止,包括开发人员,也不知道。

MySQL海豚标志是“sakila”的名称,它是由MySQL AB的创始人从用户在比赛中“海豚命名为“建议选择从大量的表中的名称。赢是开源软件开发人员的名字来自非洲,斯威士兰安布罗斯Twebaze提供。

  1. MyEclipse 8.5
    MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布和应用程序服务器整合方面有着非常大的提高工作效率。它是功能十分强大的JavaEE集成开发环境,完整支持HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate。MyEclipse 8.5不但集成最新版本的Eclipse 3.5.2同时包含了大量当前最新版的开源框架的插件支持,对主流Java框架的支持都更新许多,所以,选择MyEclipse 8.5开发相对来说是较好的选择。
  2. Tomcat 6.0
    Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量型应用服务器,它运行时占用非常小的系统资源,有非常好的扩展性,有支持负载平衡和邮件服务等开发应用系统常用的功能,是开发和调试JSP 程序的首选。
    Start UML
    StarUML(简称SU),是一种创建UML类图,生成类图和其他类型的统一建模语言(UML)图表的工具。StarUML是一个开源项目之一发展快、灵活、可扩展性强。
    VisioMicrosoft Office Visio 2003 是微软公司出品的一款的软件,它有助于 IT 和商务专业人员轻松地可视化、分析和交流复杂信息。它可以将复杂的文本和表格转换为简洁的Visio图表。它通过创建与数据相关的Visio图表可以来显示数据,这些图表容易刷新,并提高生产率。使用 Office Visio 2003 中的各种图表可了解、操作和共享企业内组织系统、资源和流程的有关信息。
    Office Visio是统一的建模语言图标的工具,其中它提供了各种各样的丰富的模板:其中大体的模板有业务流程的流程图、业务流程的网络图、业务流程的工作流图、业务流程的数据库模型图和业务流程的软件图,这些丰富的模板可用于可视简化的业务流程、跟踪项目和资源、绘制组织结构图、映射网络、绘制建筑地图以及优化系统等业务流程。
    PowerDesigner
    PowerDesigner是美国著名Sybase公司的开发的CASE工具集,使用它就可以十分方便地对系统进行分析设计,它几乎包括了数据库模型设计的全过程。利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型等数据模型,它可以生成多种客户端开发工具的应用程序,它还可为数据仓库制作结构模型,也能对团队设计模型进行控制。它可与许多流行的数据库设计软件,例如:PowerBuilder,Delphi,VB等相配合使用更能缩短开发时间和使系统设计更加的优化。从而使得数据库的设计更加完善。
    PowerDesigner主要包括以下几个功能部分:
    1. DataArchitect :这是一个强大的数据库设计工具,使用DataArchitect可利用实体-关系图为一个信息系统创建"概念数据模型"-CDM(Conceptual Data Model)。并且可根据CDM产生基于某一特定数据库管理系统(例如:Sybase System 11)的"物理数据模型"-PDM(Physical Data Model)。还可优化PDM,产生为特定DBMS创建数据库的SQL语句并可以文件形式存储以便在其他时刻运行这些SQL语句创建数据库。另外,DataArchitect还可根据已存在的数据库反向生成PDM,CDM及创建数据库的SQL脚本。
    2. ProcessAnalyst:这部分用于创建功能模型和数据流图,创建"处理层次关系"。
    3. AppModeler:为客户/服务器应用程序创建应用模型。
    4. ODBC Administrator:此部分用来管理系统的各种数据源。
    5. XML文件:可以使用工具生成相应的XML文件,或者用XML文件生成相关模型。

PowerDesigner的3模型文件:

  1. 概念数据模型(CDM):概念数据模型是表现数据库的全部逻辑的结构,与任何的软件或者数据储藏结构没有关系。一个概念数据模型经常包括在物理数据库中仍然不能实现的数据对象。它可以给运行计划或着业务活动的数据一个正式的表现方式。使其可以完整运行。
  2. 逻辑数据模型 (LDM):在后期的PowerDesigner 15 中,又引入了新的模型 如 LDM,多维数据模型等。而逻辑模型是概念模型的延伸,表示概念之间的逻辑次序,是一个属于方法层次的模型。具体来说,逻辑模型中一方面显示了实体、实体的属性和实体之间的关系,另一方面又将继承、实体关系中的引用等在实体的属性中进行展示。逻辑模型介于概念模型和物理模型之间,具有物理模型方面的特性,在概念模型中的多对多关系,在逻辑模型中将会以增加中间实体的一对多关系的方式来实现。
    逻辑模型主要是使得整个概念模型更易于理解,同时又不依赖于具体的数据库实现,使用逻辑模型可以生成针对具体数据库管理系统的物理模型。逻辑模型并不是在整个步骤中必须的,可以直接通过概念模型来生成物理模型。
  3. 物理数据模型 (PDM):PDM 叙述数据库的物理实现。藉由PDM ,你考虑真实的物理实现的细节。它进入帐户两个软件或数据储藏结构之内拿。你能修正 PDM 适合你的表现或物理约束。
  4. SQLyog

SQLyog是美国Webyog公司研发的一款十分高效简洁、有强大功能的图形化MySQL数据库管理工具。使用SQLyog可以快速直观地让您从世界的任何角落通过网络来维护远端的MySQL数据库。

SQLyog有如下特点:

(1) 它主要是用于MySQLAPI与C++的编程;

(2)数据库同步和数据库结构同步十分方便快捷;

(3) 数据库容易使用、还支持数据表的备份、数据表的还原;

(4) XML、HTML等多种格式的数据的导入和导出都是被支持的;

(5) 大量的SQL脚本文件可以被直接运行,速度极快;

(6) 新版本更是增加了强大的数据迁;

  1. 系统开发技术
  2. 编程框架
    框架式抽取某类应用的共性设计的软件半成品,用户可以在其基础之上搭建自己的软件。它可以帮助处理细节、琐碎的内容;开发员集中精力与业务逻辑的实现,提高开发效率;结构性好,可扩展性强,可升级;是成熟的、稳健的。
  3. Java的基本概念
    Java使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。事实上,Sun设计Java的初衷正是为了解决两层模式的弊端,在传统模式中,客户端担当了过多的角色而显得辐重难负。在两层模式下,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想。可现在Java的多层企业应用模型中将两层化模型的不同层面切分成许多的层。一个多层化应用能够为不同服务提供一个独立的层。以下是Java典型的四层结构:
    1. 表现层的功能:主要的功能是负责客户端的展示。
    2. 服务层的功能:主要的功能是直接为客户端提供的服务或功能。
    3. 领域层的功能: 主要的功能是系统内的领域活动。
    4. DAO层的功能: 主要的功能是数据访问对象,通过领域实体对象来操作数据库。

  1. Java 层结构的特点
    面向对象:面对对象是真实的世界模型的延伸。真实的世界中的实体都是可以看成一个对象的。他们之间是通过信息的传递与作用,任何实体都可以归属到一类事物中,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。 所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法。封装,通俗的来讲就是用一个自主式的框架去把对象的数据和方法联系在一起。面对的对象是支持封装的方式,是其最基本的单位。Java的封装性一般是比较强的, Java没有变量,没有主函数, Java中绝大部分的成员都是对象,其中除过数字类型、字符类型和布尔类型。,这些类型,Java也是提供了与之对应的对象类型便于其他的对象进行交互操作。
    可移植性:计算机软件系统上的程序经过了一次的编译可以移植到其他的计算机软件系统上去执行,经过粘贴与复制就能不影响到这个程序的运行的效果,该程序是可以完美运行。
    安全性:Java 应用程序的安全性限制与iSeries服务器上的任何其它程序都是相同。在iSeries服务器上去运行java程序,必须的是自己对整个的集成文件系统的类文件都有权限去运行,因为程序一经运行,它则在该用户的权限下来运行。自己可以用权限去判断该程序的用户权限与拥有该程序的权限的对象。
    并发性:可以提高系统并发处理的能力。JAVA支持多线程技术,多线程技术就是多个线程并发运行的机制,特别是有利于在程序中实现并发任务。Java提供Thread线程类,实现了多线程的并发机制。程序的并发执行会出现多个线程互斥访问临界资源的局面,因此并发系统解决的关键就是对临界资源的管理和分配问题,而在进行临界资源分配时这两方面则都需要考虑。
  2. MVC框架
    MVC是英文Model-view-controlle:(模型-视图-控制器)首字母的缩写,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层即模型层、视图层、控制层。
    在MVC的模式,模型的封装是核心数据和逻辑关系与业务规则,提供业务逻辑过程的处理方式。模型被控制器调用,用来处理问题的操作,并为视图获取数据提供了数据的操作。又因数据格式与模型没有关系,所以一个模型能提供数据给多个视图。视图是在MVC模式下并与之交互的界面。视图可以从模型处获得数据,它的更新又是由控制器来控制的。
    MVC的模式,控制器是起导航的作用,它能根据用户输入的类型调用出相应模型与视图来完成用户请求,控制器可以不用输出数据,其只是用于接受请求并且来调用哪个模型构件可以去处理,并且用哪个视图去显示模型处理的数据。MVC的模式处理过程大体是:首先控制器来接收用户的请求信息,并决定调用一个模型去处理,模型主要是用业务逻辑去处理用户的请求并且返回数据,控制器用对应的视图返回这个数据,并用表示层呈现给用户。
  3. Swing
    Swing是一个用于开发Java应用程序用户界面的开发工具包。以AWT为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员非常轻易就可以创建一个完美优雅的用户界面。AWT不能满足图形化用户界面发展的需要是Swing产生的主要原因。AWT的初衷是用于开发小应用程序的小界面。
    由于图形化界面发展的需要,Swing出现了,swing与AWT相比,Swing完全是没有本地的对等组件,swing基本都是轻量级的组件,AWT几乎都是重量级的组件,swing可以不用重量级组件那样要在本地不透明的窗体绘制,轻量级组件则是在重量级组件中绘制。
  4. Jpanel
    JPanel 是一般轻量级容器JPanel 为javax.swing包中的,为面板容器,可以加入到JFrame中 , 它自身是个容器,可以把其他component加入到JPanel中,如JButton,JTextArea,JTextField等。
  5. Java多线程

Java编写的程序都运行在JVM中,在JVM的内部,程序的多任务是通过线程来完成实现的。

当java命令启动一个java应用程序,就会启动一个JVM进程。在同一个JVM进程中,有且只有一个进程。在这个JVM环境中,所有程序代码的运行都是以线程来运行的。JVM找到入口点main(),并且运行main(),就可以产生一个线程,这个线程称为主线程。

操作系统将线程进行管理,轮流(没有固定的顺序)分配每个进程很短的一段时间(不一定是均分),然后在每个进程的内部,程序的代码自己就可以去处理该进程的内部线程时间分配,多个线程相互去切换去执行,这个切换时间也是非常短的。使用java.lang.Thread类或者java.lang.Runnable接口编写代码来定义、实例化和启动新线程。一个Thread类实例只是一个对象,像Java中的任何其他对象一样,具有变量和方法,生死于堆上。Java中,每个线程都有一个调用栈,线程也在后台运行着。Java可以从main()开始运行,mian()运行在一个线程中,可以称之为主线程。一旦一个新的线程创建,就能产生一个新调用栈。

  1. 可行性分析
    1. 可行性分析

可行性分析又称为可行性研究,就是在充分的系统调查的基础上,从而分析新系统的开发是否具备必要性和可能性,对新系统的开发要从技术、经济、管理等多方面进行分析和研究,以保证新系统的成功开发。该系统的可行性分析包括以下几个方面的内容。

  1. 技术可行性
    主要考虑从技术上能否能顺利完成该软件开发工作,并且从硬件和软件上能否满足开发者的需要等。从技术可行性上分析,开发该系统时所使用的均是目前流行轻量级开发技术,具体使用可以查阅工具书或者相应介绍这些技术的资料,因此在技术上可行。
  2. 经济可行性
    从经济可行性上分析,本次设计属于完全的出租车计价类的,开发工具均可以免费从网上下载获得并安装,不需要支付任何费用来利用工具开发。所以经济上可行。
  3. 操作可行性

操作可行性上分析,本系统基于C/S模式,部署简单。像客户端一样在系统中操作一样,所以操作上可行。

综合上述,出租车计价系统的设计与实现,从技术上、经济上、操作上分析均可行,故本次设计的可行性分析结果为成功通过,可以对这个系统进行开发。

  1. 设计目标
    出租车计费系统的总体目标:
    (1)出租车计价系统可以实现出租车信息的管理。
    (2)出租车计价系统可以实现司机信息的管理。
    (3)出租车计价系统可以实现出租车计价功能。
    (4)出租车计价系统可以实现订单信息的维护
  2. 功能要求

系统应该具备的基本功能:

  1. 出租车维护
    出租车信息的查询:通过数据库查询出租车的车型,车号,以及是否可用
    出租车信息的增加:向数据库中添加出租车的车型,车号,以及是否可用
    出租车信息的修改:对数据库中已经存在的出租车的车型,车号,以及是否可用的信息进行修改
    出租车信息的删除:删除数据库中已经存储的出租车的信息
  2. 司机信息的维护
    司机信息的查询:通过数据库查询出司机的年龄,性别,学历,名字等信息
    司机信息的增加:向数据库中添加司机的年龄,性别,学历,名字等信息
    司机信息的修改:对数据库中已经存在的司机的年龄,性别,学历,名字等信息进行修改
    司机信息的删除:删除数据库中已经存储的司机的信息
  3. 订单信息的生成(出租车计价功能):
    通过java多线程,模拟出租车在路上的情景,通过距离计费的方式,将订单的时间,乘客的信息,订单的价格等插入数据库中
  4. 订单信息的维护:

订单信息的查询:通过数据库查询出订单的时间,价格等信息

订单信息的删除:删除数据库中已经存储的订单信息

订单信息的修改:对数据库中已经存在的订单的时间,价格等信息进行修改

  1. 系统开发环境配置
    本系统以微软平台作为主导,主要是考虑目前微软的庞大市场占用率,另外从技术角度来讲,微软平台上的应用无论是在开发上,还是在软件的部署上都是非常容易,而且性能优越。具体如下:
    (1)开发工具:MyEclipse 8.5
    (2)数据库:SQLyog
    (3)服务器 :Tomcat服务器
    (4)运行环境 :安装JDK1.8支持JAVA运行并且正确配置环境变量
  2. 系统开发工具
  3. 开发语言—JSP(JAVA Server Page)
    JSP页面由HTML代码和嵌入其中的JAVA代码所组成。JAVA Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要JAVA Servlet和JSP配合才能完成。JSP具备了JAVA技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的等特点。
    1. JSP概述
      JSP是Java server page的缩写,该技术是由Sun公司为主导。其根本是一个简化的Servlet设计,,该技术是由Sun公司为主导、许多公司参与一起建立的一种动态网页技术标准。JSP 是创建高度动态的 Web 应用的一个独特的开发环境,提供了网页动态执行能力。
      JSP在服务器端,即在web服务器上执行 ,并且将执行的结果发送到客户端的浏览器上,基本上是与浏览器没有关系的
    2. JSP 与 ASP比较
      作为动态web技术,JSP与ASP之间存在很多相似之处。事实上JSP两者都提供在 HTML代码中混合程序代码、由语言引擎解释执行程序代码。在ASP与JSP环境下,HTML代码负责描述信息呈现的显示样式,而程序代码则用来描述处理逻辑。普通的 HTML页面只依赖于Web服务器,而ASP和JSP页面需要附加的语言用来分析和运行行程序的代码。执行结果就可以被重新的嵌入到HTML代码中,并全部发送到浏览器上。ASP和JSP都是面向Web服务器的技术,客户端浏览器是不需要任何附加的软件用于支持。
      JSP使用的是Java,而ASP使用的是VBS。这是十分显著的区别。ASP与JSP还有一个更加本质区别:两种语言引擎用是用不同的方式去处理页面中嵌入的程序代码。在ASP中,VBS被ASP引擎解释和执行;在JSP中,VBS被编译为Servlet在JSP页面的首次请求时由Java虚拟机去执行操作。
    3. 安装JSP运行运行环境
      安装JDK
      把JDK安装到到D:\java\jdk目录中
      编辑系统变量
      path=%path%;d:\java\jdk1.4.0\bin
      classpath=.;d:\j2sdk1.4.0\lib\tools.jar
      JDK测试
      编译
      运行

  1. Eclipse简介
    Eclipse是替代IBM Visual Age for JAVA(以下简称IVJ)的下一代IDE开发环境,但它未来的目标不仅仅是成为专门开发JAVA程序的IDE环境,根据它的体系结构,通过开发插件,它能扩展到开发可以用于任何语言,甚至能成为图片绘制的工具。目前,该软件已经开始提供功能插件主要是用于在c语言的开发上。尤为重要的是其为开发的源代码,成为普通大众的福音,人人都可以免费的下载。并且还开发了自己的功能插件。只要需要,都会有其他语言的开发插件出现,例如perl语言。
  2. Tomcat简介
    Tomcat是一个免费的开源的Serlvet容器,是Apache基金会的Jakarta中的核心项目之一,是Apache Sun和一些公司及个人共同开发而成。有了Sun的参与和支持,最新Servlet和JSP规范最终可以在Tomcat中得到体现。Tomcat被选为2001年最具创新的产品,可见其在业界的地位。
    Eclipse是跨平台的集成开发环境(IDE)。最初主要用来Java语言的开发与编辑,目前也有人用其作为C++、Python、PHP等其他语言的开发工具。
    1. 历史
      Eclipse最初是由IBM自主开发的Java IDE开发环境,为开源社区2001年11月,现在由Eclipse基金会(Eclipse Foundation)管理。2003年,Eclipse 3.0选择OSGi服务平台规范运行时体系结构。2007年6月,稳定版3.3版本,发布2008年6月,代号为木星的3.4版本,发布于2009年6月,代号为伽利略3.5版本,发布于2010年6月,代号为Helios版本3.6
    2. 架构
      Eclipse的基础是RCP。RCP包括下列组件:
      核心平台
      OSGi
      SWT
      JFace
      Eclipse工作台
      视角(perspectives)
      向导(wizards))
      MyEclipse是基于Eclipse开发的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。如三星、IBM、惠普、花旗集团、西门子、斯坦福大学、波音公司等知名机构均使用MyEclipse进行Java、JavaEE开发,Eclipse采用的技术是IBM公司开发的,是一种基于Java的窗口组件,Eclipse的用户界面还使用了GUI中间层JFace,从而简化了基于SWT的应用程序的构建。80%以上的全球财富100强企业均是MyEclipse的用户。。
      Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它功能都以插件的形式附加于Eclipse核心上。Eclipse基本内核包括:API, JDT, PDE等。
    3. Eclipse计划

Eclipse是由不同的计划组合而成。它的计划包括Eclipse平台本身与Eclipse Java开发工具(JDT)以及富客户端平台(RCP)。

TPTP是提供一个软件开发人员可以构建测试和调试等情况分析和基准测试工具。
WTP:用java企业版web应用程序开发工具扩展Eclipse平台。由以下部分组成:HTML、JavaScript、CSS、JSP、SQL、XML DTD,XSD和WSDL源代码编辑器

BIRT:提供Web应用程序基于Java enterprise edition(尤其是)报告的开发工具。
VEP: 在Eclipse框架创建一个图形化用户界面的代码生成工具。
Eclipse modeling framework(EMF):在 XMI规范描述的模型的基础上,生成一个结构化的数据模型开发工具以及生成应用程序的代码。
GEF:主要是用来让开发人员在一个应用程序模型上方便快捷地创建一个丰富的图形化编辑工具。
UML2.0编译器:在UML2.0模型的实现上,来促进建模工具的发展。
AspectJ:Java语言扩展。
ECF:专注为Eclipse平台的应用程序的创建起沟通工作。
CDT:为Eclipse平台提供了一个功能齐全的C和c++的集成开发环境(IDE),它使用GCC编译器。
PDT:Eclipse平台提供了一个功能齐全的PHP集成开发环境(IDE)。
COBOL:将在Eclipse平台上建立一个功能齐全的COBOL集成开发环境。PTP:将开发一个框架,用于并行计算机的一套工具集成并行的工具平台,平台是便携式,可伸缩的和基于标准。
eRCP嵌入式平台,计划扩大Eclipse的富客户机平台的嵌入式设备。这个平台主要是一个 RCP组件的一个子集,它使应用程序模型可以大致相同的桌面环境能够在嵌入式设备中使用。

  1. 需求分析
    1. 需求分析描述

需求分析值得是去搭建一个新的或修改一个已经存在的软件系统时分析出系统的目的如何、范围是什么养的、该系统是如何定义和该系统应实现什么功能时所做的分析工作。需求分析描述的是软件编译工程中的一个十分关键的过程。需求分析阶段的主要工作是确定软件功能并分析描述软件的作用。在该过程中,软件系统分析师和软件工程师应了解和分析顾客的需求。在确定了客户需要的功能后他们才分析和寻求搭建新的系统的方法。

需求分析,指对要解决的问题进行详细的分析,弄清楚问题的要求。需求分析的任务指通过调查现实世界处理的对象,了解原系统工作概况,明确用户的各种需求并在此基础上确定出租车计价系统的各种功能。 所以需求分析是一项重要的工作,也是最困难的工作

  1. 需求分析的任务
    1. 确定系统要求
      系统的功能需求是对软件系统的一项基本需求,但却并不是唯一需求,通常有下述几方面的综合要求:功能的需求、性能的需求、可靠性的需求、出错处理的需求、接口需求。
    2. 分析系统数据要求
      系统处理的信息和系统产生的信息决定了系统的面貌,对软件设计有很大的影响,因此,分析系统数据要求,是软件分析的一个重要任务。分析系统数据要求一般建立数据模型。复杂的数据由许多基本的数据元素组成,数据结构表示数据元素之间的逻辑关系。可以利用数据字典进行全面数据的定义,为了提高可理解性,通常可利用图形化工具辅助
    3. 导出系统的逻辑模型

综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用数据流图、E-R图、数据字典描述这个逻辑模型。

  1. 本系统的需求
  2. 系统的要求
    1. 可以添加车辆信息;
    2. 可以删除车辆信息;
    3. 可以添加司机信息;
    4. 可以删除手机信息;
    5. 可以维护车辆信息;
    6. 可以管理车辆信息;
    7. 可以维护司机信息;
    8. 可以管理司机信息;
    9. 可以查询订单,实现出租车计价

  1. 系统实现目标
    1. 通过设计合理的、规范化的数据存储结构,对企业的基础数据进行有效的组织、维护,提供统一的基础数据管理平台。
    2. 为其他子系统的运行提供共享数据环境,减少数据冗余,提高管理效率。
    3. 灵活设置业务管理中需要的价格、日期等参数。
    4. 提供对出租车、司机、订单的设置和管理。
    5. 采用矩阵式权限管理和各级数据校验,实现各层次的数据保密,面向不同的用户,分配不同的权限,并体现不同的界面,使操作方便安全。

  1. 系统流程图、数据流图和数据字典
  2. 系统流程图
    系统流程图是一个系统流经的信息流、系统流经的部件流和系统流经的观点流的图形化代表。流程图主要用来说明某一过程的流程。这种过程是完成一项任务必需的管理过程。
    出租车计价系统的系统流程图如图3-1所示。


图3-1系统流程图

  1. 数据流图
    数据库流图:在数据传递与加工角度中,是用图形方式表达该出软件开发的逻辑。例如:租车计价系统的思维逻辑是如何的,结构化系统分析方法的主要表达工具是数据流图,用数据流图是表示软件模型的图示方法。
    系统数据流图如图3.2所示


图3-2系统顶层数据流图
数据库回显处理,通过数据回显,将信息显示在屏幕上,如图4.3所示:


图3-3数据库回显处理

  1. 数据字典

数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。

数据字典(Data dictionary)是一种目录,是用户访问的记录数据库和应用程序源数据。数据字典最重要的作用是作为分析阶段的工具。在结构化分析中,数据字典的作用是给数据流图上每个成分加以定义和说明。

(1).出租车维护:

出租车信息的查询:通过数据库查询出租车的车型,车号,以及是否可用

出租车信息的增加:向数据库中添加出租车的车型,车号,以及是否可用

出租车信息的修改:对数据库中已经存在的出租车的车型,车号,以及是否可用的信息进行修改

出租车信息的删除:删除数据库中已经存储的出租车的信息

(2).司机信息的维护:

司机信息的查询:通过数据库查询出司机的年龄,性别,学历,名字等信息

司机信息的增加:向数据库中添加司机的年龄,性别,学历,名字等信息

司机信息的修改:对数据库中已经存在的司机的年龄,性别,学历,名字等信息进行修改

司机信息的删除:删除数据库中已经存储的司机的信息

(3).订单信息的生成(出租车计价功能):

通过java多线程,模拟出租车在路上的情景,通过距离计费的方式,将订单的时间,乘客的信息,订单的价格等插入数据库中

(4).订单信息的维护:

订单信息的查询:通过数据库查询出订单的时间,价格等信息

订单信息的删除:删除数据库中已经存储的订单信息

订单信息的修改:对数据库中已经存在的订单的时间,价格等信息进行修改

  1. 概要设计
    1. 概要设计引入

  1. 概要设计引入
    软件的研制工作经过需求分析阶段以后,已经完全(或者说基本)弄清了用户的需求,也就是已经解决了要让所开发的软件的功能是如何的,同时还在软件说明书中详尽的叙述表达了软件开发的需求。在这设计阶段后,就可以开始着手对软件需求的实施工作。
    设计阶段分为两部分,概要的设计与详细的设计 。在概要的设计阶段着重解决了需求实现的程序设计问题。其中就包括考虑被开发的软件系统由若干个模块来组成,并且来决定各模块接口的关系以及模块之间信息的传递。详细设计是决定每个模块内部的算法。在概要设计完成后,必须进行阶段的评审工作。
    软件概要设计工作由设计员完成。设计员由经验丰富的软件人员担任。软件概要设计的方法有结构化设计(SD)方法, Jackson方法, Parans方法, LCP方法等。
  2. 概要设计的任务
    1. 设计软件系统结构(简称软件结构)
      为了实现目标系统,最终必须设计出组成这个系统的所有程序和数据库(文件),对于程序,则首先进行结构设计。软件结构的设计,在软件的需求分析阶段,系统为层次结构。设计阶段,根据需求分析的结果,划分为模块,并组成模块的层次结构。软件结构的设计会影响下一阶段设计与编码质量和整体特性。
    2. 数据结构及数据库设计
      数据结构设计:数据字典对数据组成、操作约束、数据的关系等进行了描述,确定了数据结构的特点,并且在概要设计阶段要加以细化,详细设计阶段则规定具体的实现细节。数据库设计:数据库的设计指数据存储文件的设计。
    3. 编写概要设计文档
      文档主要有:概要设计说明书,数据库设计说明书,用户手册。
    4. 评审

对是否完整实现了规定的功能、性能要求,设计方案的可行性,关键的处理及内外部接口定义的正确性,各部分间的一致性等都进行了评审。

  1. 系统功能模块
  2. 系统功能模块描述
    1. 出租车信息模块包含:出租车辆的车型,出租车辆的车牌号,出租车辆是否维修,可以实现基本信息的维护,增加,修改,删除。
    2. 司机管理模块包含:司机信息设置,司机职务设置,司机学历,司机编号,司机生日等,可以实现对司机的基本信息如:员工编号,姓名等的查询,增加,修改,删除。
    3. 计价模块包含:通过旅客点击派车,从而使得出租车按照时间生成一个订单,插入到订单表中
    4. 订单模块包含:订单数汇总,打印订单数,可以实现查看订单数,并且将这些数据打印出来

  1. 系统功能模块层次方框图

软件的结构有时成为软件的体系结构,它是软件系统中最本质的东西。良好的体系结构意味着实用、高效和稳定。层次结构图是SD方法中使用最普遍的软件体系结构。

层次图用来描述软件的层次结构。层次图中的一个矩形框表示一个模块,矩形框之间的连线表示模块之间的调用关系。系统层次如图4-1所示。

图4-1系统层次图

  1. 系统数据库设计
  2. 概念数据模型
    概念数据模型是面向数据库用户实现的模型,主要的作用是用来描述世界的概念化结构。概念数据模型必须换成逻辑数据模型,才能在DBMS中实现。其只描述信息的特征和强调语义,而不涉及信息在计算机中的表示,是现实世界到信息世界的第一层抽象。它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。概念数据模型它的英文是:Conceptual Data Model,一般用CDM来表示。
    层次模型: 有且仅有一个结点无父结点,这个结点称之为根结点; ② 其他结点有且仅有一个父结点。
    层次数据库模型的主要优点:
    层次数据库模型本身比较简单, 层次数据库模型对具有一对多的层次关系的部门描述的非常自然、直观,并且非常容易让人理解,层次数据库模型提供了良好的完整性支持。
    层次数据库模型的主要缺点:
    在现实的世界中有许许多多的非层次性的联系,如多对多的联系等,一个结点具有许多个父结点等,层次模型表示这类联系的方法很笨拙,对于插入和删除的操作的限制种种比较多、查询子结点事必须经过父结点的,由于结构的严密,层次的命令趋于程序化。
    CDM是建模过程中的关键阶段,此阶段把显示世界中需要保存的信息抽象成信息世界中的实体联系,产生实体联系图。建立概念数据模型是一项综合性的工作。
    概念数据模型的数据对象有域(Domain),数据项(Data item),实体(Entity),实体属性(Entity attribute),联系(Relationship)和继承链(Inheritance link)等.这些数据对象只是在概念层次上的抽象,并未涉及到物理数据库的实现.
    建立CDM的过程就是对信息系统进行概念层次上的抽象和表达的过程,用CDM的各种对象来描述信息系统内部的实体之间的关系,建立CDM的步骤:
    1. 为CDM定义域(Domain):主要包括设置所建域的域名、数据类型、长度、精度和扩展选项等。
    2. 定义数据项:是指定数据项名、代码、选择域(或指定数据类型、长度、精度)等。
    3. 定义实体:打开List of Entities对话框建立相关实体
    4. 定义实体属性:包括设置实体名称、代码、规则等,并为所建立的实体引入相关的数据项。
    5. 定义联系:联系指在相关实体之间建立联系,同时设置所建联系的属性(包括联系名、设置一对多、多对多等可选联系等)。
    6. 建立子模型:首先应确定所建CDM应划分成几个子模型,再对各子模型加入相应的各个实体。
    7. 定义继承:使用继承连接建立实体间继承关系,并设置继承属性(包括继承名称、代码、设置继承方向等)。
    8. 定义检查参数并检查所建立的CDM

  1. 数据库表

为了数据存储更加有效率,数据库存储时的表会有变化,在这个系统中,总共定义了4个表,如下:

表5.1用户表

用户表
字段名字段类型是否可为空
usernameVarchaN(主键,不可为空)
PasswordVarcharN
TypevarcharN

表5.2司机表

司机表
字段名字段类型是否可为空
id_pintN(主键,不可为空,自动递增)
namevarcharN
sexvarcharN
nationvarcharN
jiguanvarcharN
idcardvarcharN
xuelivarcharN
schoolvarcharN
telvarcharN
mailVarcharN
addressvarcharN
statevarcharN

表5.3订单表

订单信息
字段名字段类型是否可为空
id_chintN(主键,不可为空,自动递增)
namevarcharN
numbervarcharN
bossvarcharN
milevarcharN
chargevarcharN

表5.4车辆表

车辆信息
字段名字段类型是否可为空
id_cintN(主键,不可为空,自动递增)
numbervarcharN
xinghaovarcharN
typevarcharN
F_numbervarcharN
j_numbervarcharN
selltimedatetimeN
stateStringN
infvarcharN
  1. 详细设计及实现编码
    1. 详细设计概述
      详细设计是软件开发最为重要的一个步骤,即对概要设计的一个细化,是详细设计每一个模块算法的实现,所需的局部结构设计。详细设计的主要任务为设计每一个模块的实现算法、局部数据结构。详细设计的有两个设计目标:模块功能的算法逻辑上要正确,算法描述必须要简明易懂。
      传统软件开发方法的详细设计主要是用结构化程序设计法。其中的工具中:图形工具有业务流图、程序流程图、Problem Analysis Diagram图、NS图。语言工具有伪码和PDL(Program Design Language)等。
    2. 系统各功能模块的实现

详细设计阶段,每个功能模块是单独考虑。详细设计要确定模块内部的详细执行过程,包括:局部数据组织、控制流、每一步的具体加工要求及种种实现细节等。详细设计的方法是结构化程序设计。

由于是分别考虑每个模块,所以问题的规模已大大缩小,而且有了结构化程序设计的方法,一般来说,详细设计的难度已不大了,关键是用一种合适的表示方式来描述每个模块的执行过程,这种表示方式应该是简明而精确。

  1. 系统程序流程图
    系统程序流程图是程序分析中最为基本、最为重要的分析技术。系统程序流程图是进行程序流程分析过程中最为基本的工具。它是运用工序图示符号对生产现场的整个制造程序做详细的记录,可以对零部件和产品在整个制造中的检验、储存、操作、搬运.等待等作详细的研究分析,最重要的是用于分析其搬运距离和储存等“隐藏成本”的浪费。程序流程图是人们对解决问题的方法、思路或算法的一种描述。
    流程图的优点:
    1. 采用简单规范的符号,画法简单。
    2. 结构清晰,逻辑性强。
    3. 便于描述,容易理解。

  1. 用户登录流程图
    用户登录的图标在首页上设置,主要的作用是接收用户登陆的信息。在点击“登录”图标的同时,则将会对用户的信息进行验证例如用户名称和密码的确认去验证,假如数据表的用户名称和密码的确认验证是存在在那么就是显示登陆成功直接进入下一界面,并且进行查寻与验证数据的正确与否然后返回首页,否则提示信息错误继续跳转验证用户信息界面。如图5-1所示:


图5-1用户登录流程图

  1. 修改资料流程图
    用户资料修改时为用户更改个人信息所提供的窗口,用户只有登录网页后才有权限修改个人资料信息。如图5-2所示:


图5-2修改资料流程图

  1. 查询资料流程图
    先判断是按信息查找还是联系人查找还是查找数据编号,如果按照信息查找,则在数据库中查找的相应信息,如果是按联系人查找,则在数据库找出对应的联系人。如果按数据编号查找,则在数据库找出相应的数据编号如果查找的结果不存在,则结束,如果查找结果存在,显示他们的信息。如图5-3所示:


图5-3查询资料流程图

    1. 数据库连接:使用框架整合连接数据库,关键是配置好连接驱动applicationContext.xml 中配置数据源,有关连接数据库驱动的参数,用户名、密码。
      <bean id="dataSource"
      class="org.apache.commons.dbcp.BasicDataSource">
      <property name="driverClassName"
      value="oracle.jdbc.driver.OracleDriver">
      </property>
      <property name="url"
      value="jdbc:oracle:thin:@localhost:1521:orcl">
      </property>
      <property name="username" value="scott"></property>
      <property name="password" value="tiger"></property>
      </bean>
      (2)配置 sessionFactory 数据库方言:并设置show_sql为true,打印sql语句,方便调试
      <bean id="sessionFactory"
      class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
      <property name="dataSource">
      <ref bean="dataSource" />
      </property>
      <property name="hibernateProperties">
      <props>
      <prop key="hibernate.dialect">
      org.hibernate.dialect.Oracle9Dialect
      </prop>
      <prop key="hibernate.show_sql">true</prop>
      </props>
      </property>
      (3)配置映射关系:
      <property name="mappingResources">
      <list>
      <value>
      com/neusoft/lm/dispatchservice/entity/Leave.hbm.xml
      </value>
      </list>
      </property>
      </bean>
      (4)注入action dao service层:将类的初始化,销毁交给Spring 管理
      <beanid="fileDAO"class="com.neusoft.lm.dispatchservice.dao.impl.FileDAOImpl">
      <property name="sessionFactory" ref="sessionFactory" />
      </bean>
      <beanid="fileService"class="com.neusoft.lm.dispatchservice.service.impl.FilelistServiceImpl">
      <property name="dao" ref="fileDAO" />
      </bean>
      <bean id="fileAction" class="com.neusoft.lm.dispatchservice.action.FileAction" scope="prototype">
      <property name="service" ref="fileService" />
      </bean>

  1. 系统各模块界面
    1. 登录界面:用户只有在主界面上登录后才能实现车辆维护,司机管理,生成订单,订单查询等功能。如图5-4所示。

图5-4登陆界面

(2)车辆状态

车辆状态主界面,如图5-5所示:

图5-5车辆状态主界面

(3)车辆管理

车辆管理主界面,如图5-6所示.。

图5-6车辆管理

(4)司机信息

司机信息主界面,如图5-7所示:

图5-7司机信息

(4)计价信息

计价信息主界面,如图5-8所示:

图5-8计价信息

(4)订单信息

订单信息主界面,如图5-9所示:

图5-9订单信息

结束语

随着经济的发展,出租车已然成为方便市民出行的重要交通工具之一,他与我们的生活息息相关。出租车行业的发展必将影响这全球经济和交通的发展,因此我们应该对出租车行业的发展多加以关注并予以创新。

经过了两个多月的学习与工作,我终于完成了关于《出租车计价器设计与实现》的论文。从开始接到论文题目到系统的实现,再到论文的独立完成,每一步对我来说都是新的尝试与挑战,这也是我在大学期间独立完成的最大的项目。从我刚开始的五发开始,没有一点思路到现在对Jsp与Myeclipe等等技术的基本操作,我学到了很多非常有用的知识。使我自己的稚嫩作品一步步完善起来。每一次改进都是我学习的收获,每一小步的进步都让我非常的兴奋。

通过这次本科毕业程序的设计,让我对系统的开发有了更为深刻的理解,积累了一定的软件编辑经验。虽然在去年的生产实习中接触到了客户端制作,但是只是比较单一页面的设计,没有综合一个完整的应用项目的各情况。而经过这次的毕业设计,经过自己理论知识与在网上不断的学习的程序编程的能力,我基本上掌握了这个出租车计价设计与实现的编程的基础,在这不断地编程中,我的一些问题经过老师和同学的帮助下一一解决了,在解决各种难题的过程中,我学习了很多,并且学会了一些小技巧的应用。

当然,由于短短的有限一段时间,我的个人编程能力的不足以及开发经验的缺乏,我的这个程序还有很多需要改进的东西,如出租车计信息、出租车计费信息等的功能比较简单,我们可以充分的利用SQL语句来开发功能更为强大的查询系统。此外,在以后系统运行的过程中,可能还会遇到种种一些小问题,我将会在以后进行进一步的修改,并加以开发。

致谢

忙忙碌碌的过了两个月,我的毕业课题基本上可以告一段落,通过出租车计价系统,我获得了将自己所学知识勇于实践的机会。通过完成题库管理系统后,了解到自己还有太多的东西还了解,还有太多的知识需要学习。以为四年的学习时间很长,可以学到很多知识,其实老师所教的知识还远远不够,更重要的是自我学习,尤其是计算机技术这样的朝阳产业,各种技术日新月异,飞速发展,我们要用大学4年里老师教给我们的学习方法去不断学习,终身学习。

感谢曾给过我帮助的同窗四年的同学和在毕业设计过程中给我帮助的同学和朋友,愿他们一切顺利。

最后感谢每一位任课老师,是每一位教授他们对我们高度负责的态度,含辛茹苦的教导才使得我们学到了将会受益终生的知识教诲。

主要参考文献

[1]刘浩.Java从入门到精通[M]. 北京:人民邮电出版社,2010:7-10.

[2]印旻.Java语言与面向对象程序设计[M]. 北京:清华大学出版社,2000:88-102.

[3]LJ. ARACIL,D.MORATO,M.IZAL.Analysis and stochastic characterization of TCP lows[J].The Public Access Computer Systems Review,1993.4.9-5.6

[4]程峰,黄若波译. JAVA核心技术卷Ⅰ:基础知识[M].北京:机械工业出版社,2005.4.3-5.7

[5]孙培生.出租车计价器.中国计量出版社,1999.11

[6]唐红亮,刘家愚,冯茂岩,郑有增.计算机专业毕业设计指导(第2版),科学出版社.北京科海电子出版社,科学出版社,2008.2

[7]张颖.多功能出租车计价器的设计.计算机与信息技术,2009.9

[8]张秀娥.叶哲江等.出租车计价器的软件设计.山西电子技术,2007.4

[9]高书莉.罗朝霞.可编辑逻辑设计技术及应用.人民邮电出版社,2004.3

[10]洪传文.出租车计价器的原理及应用[J].技术监督与服务,1997

[11]Jone Wulenskl.VHDL Digtal System Design[D],电子工业出版社,2004.10-10.5

[12]Kenneth E.Kedall等.施平安译.系统分析与设计(第6版).清华大学出版社,2006

外文文献及翻译

THE TECHNIQUE DEVELOPMENT HISTORY OF JSP

By:Kathy Sierra and Bert Bates

Source: Servlet&JSP

The Java Server Pages( JSP) is a kind of according to web of the script plait distance technique, similar carries the script language of Java in the server of the Netscape company of server- side JavaScript( SSJS) and the Active Server Pages(ASP) of the Microsoft. JSP compares the SSJS and ASP to have better can expand sex, and it is no more exclusive than any factory or some one particular server of Web. Though the norm of JSP is to be draw up by the Sun company of, any factory can carry out the JSP on own system.

JSP (full name JavaServer Pages) is advocated by Sun Microsystems company and many companies participate in together to create a software developers will be able to respond to client requests, and dynamically generated HTML, XML, or other Web page format documents of technical standards.JSP technology as a scripting language in Java language, the JSP page for the entire unit server-side Java library provides an interface to serve HTTP application.JSP Java code and certain predefined action can be embedded into a static page.JSP syntax increased the XML tags called JSP action, they used to invoke the built-in functions.

The After Sun release the JS P( the Java Server Pages) formally, the this kind of new Web application development technique very quickly caused the people's concern. JSP provided a special development environment for the Web application that establishes the high dynamic state. According to the Sun parlance, the JSP can adapt to include the Apache WebServer, IIS4.0 on the market at inside of 85% server product.

This chapter will introduce the related knowledge of JSP and Databases, and JavaBean related contents, is all certainly rougher introduction among them basic contents, say perhaps to is a Guide only, if the reader needs the more detailed information, pleasing the book of consult the homologous JSP.

1.1 GENER ALIZE

The JSP(Java Server Pages) is from the company of Sun Microsystems initiate, the many companies the participate to the build up the together of the a kind the of dynamic the state web the page technique standard, the it have the it in the construction the of the dynamic state the web page the strong but the do not the especially of the function. JSP and the technique of ASP of the Microsoft is very alike. Both all provide the ability that mixes with a certain procedure code and is explain by the language engine to carry out the procedure code in the code of HTML. Underneath we are simple of carry on the introduction to it.

JSP pages are translated into servlets. So, fundamentally, any task JSP pages can perform could also be accomplished by servlets. However, this underlying equivalence does not mean that servlets and JSP pages are equally appropriate in all scenarios. The issue is not the power of the technology, it is the convenience, productivity, and maintainability of one or the other. After all, anything you can do on a particular computer platform in the Java programming language you could also do in assembly language. But it still matters which you choose.

JSP provides the following benefits over servlets alone:

• It is easier to write and maintain the HTML. Your static code is ordinary HTML: no extra backslashes, no double quotes, and no lurking Java syntax.

• You can use standard Web-site development tools. Even HTML tools that know nothing about JSP can be used because they simply ignore the JSP tags.

• You can divide up your development team. The Java programmers can work on the dynamic code. The Web developers can concentrate on the presentation layer. On large projects, this division is very important. Depending on the size of your team and the complexity of your project, you can enforce a weaker or stronger separation between the static HTML and the dynamic content.

Now, this discussion is not to say that you should stop using servlets and use only JSP instead. By no means. Almost all projects will use both. For some requests in your project, you will use servlets. For others, you will use JSP. For still others, you will combine them with the MVC architecture . You want the apGFDGpropriate tool for the job, and servlets, by themselves, do not complete your toolkit.

1.2 SOURCE OF JSP

The technique of JSP of the company of Sun, making the page of Web develop the personnel can use the HTML perhaps marking of XML to design to turn the end page with format. Use the perhaps small script future life of marking of JSP becomes the dynamic state on the page contents.( the contents changes according to the claim of)

The Java Servlet is a technical foundation of JSP, and the large Web applies the development of the procedure to need the Java Servlet to match with with the JSP and then can complete, this name of Servlet comes from the Applet, the local translation method of now is a lot of, this book in order not to misconstruction, decide the direct adoption Servlet but don't do any translation, if reader would like to, can call it as" small service procedure". The Servlet is similar to traditional CGI, ISAPI, NSAPI etc. Web procedure development the function of the tool in fact, at use the Java Servlet hereafter, the customer need not use again the lowly method of CGI of efficiency, also need not use only the ability come to born page of Web of dynamic state in the method of API that a certain fixed Web server terrace circulate. Many servers of Web all support the Servlet, even not support the Servlet server of Web directly and can also pass the additional applied server and the mold pieces to support the Servlet. Receive benefit in the characteristic of the Java cross-platform, the Servlet is also a terrace irrelevant, actually, as long as match the norm of Java Servlet, the Servlet is complete to have nothing to do with terrace and is to have nothing to do with server of Web. Because the Java Servlet is internal to provide the service by the line distance, need not start a progress to the each claimses, and make use of the multi-threading mechanism can at the same time for several claim service, therefore the efficiency of Java Servlet is very high.

But the Java Servlet also is not to has no weakness, similar to traditional CGI, ISAPI, the NSAPI method, the Java Servlet is to make use of to output the HTML language sentence to carry out the dynamic state web page of, if develop the whole website with the Java Servlet, the integration process of the dynamic state part and the static state page is an evil-foreboding dream simply. For solving this kind of weakness of the Java Servlet, the SUN released the JSP.

A number of years ago, Marty was invited to attend a small 20-person industry roundtable discussion on software technology. Sitting in the seat next to Marty was James Gosling, inventor of the Java programming language. Sitting several seats away was a high-level manager from a very large software company in Redmond, Washington. During the discussion, the moderator brought up the subject of Jini, which at that time was a new Java technology. The moderator asked the manager what he thought of it, and the manager responded that it was too early to tell, but that it seemed to be an excellent idea. He went on to say that they would keep an eye on it, and if it seemed to be catching on, they would follow his company's usual "embrace and extend" strategy. At this point, Gosling lightheartedly interjected "You mean disgrace and distend."

Now, the grievance that Gosling was airing was that he felt that this company would take technology from other companies and suborn it for their own purposes. But guess what? The shoe is on the other foot here. The Java community did not invent the idea of designing pages as a mixture of static HTML and dynamic code marked with special tags. For example, Cold Fusion did it years earlier. Even ASP (a product from the very software company of the aforementioned manager) popularized this approach before JSP came along and decided to jump on the bandwagon. In fact, JSP not only adopted the general idea, it even used many of the same special tags as ASP did.

The JSP is an establishment at the model of Java servlets on of the expression layer technique, it makes the plait write the HTML to become more simple.Be like the SSJS, it also allows you carry the static state HTML contents and servers the script mix to put together the born dynamic state exportation. JSP the script language that the Java is the tacit approval, however, be like the ASP and can use other languages( such as JavaScript and VBScript), the norm of JSP also allows to use other languages.

1.3JSP CHARACTERISTICS

Is a service according to the script language in some one language of the statures system this kind of discuss, the JSP should be see make is a kind of script language. However, be a kind of script language, the JSP seemed to be too strong again, almost can use all Javas in the JSP.

Be a kind of according to text originally of, take manifestation as the central development technique, the JSP provided all advantages of the Java Servlet, and, when combine with a JavaBeans together, providing a kind of make contents and manifestation that simple way that logic separate. Separate the contents and advantage of logical manifestations is, the personnel who renews the page external appearance need not know the code of Java, and renew the JavaBeans personnel also need not be design the web page of expert in hand, can use to take the page of JavaBeans JSP to define the template of Web, to build up a from have the alike external appearance of the website that page constitute. JavaBeans completes the data to provide, having no code of Java in the template thus, this means that these templates can be written the personnel by a HTML plait to support. Certainly, can also make use of the Java Servlet to control the logic of the website, adjust through the Java Servlet to use the way of the document of JSP to separate website of logic and contents.

Generally speaking, in actual engine of JSP, the page of JSP is the edit and translate type while carry out, not explain the type of. Explain the dynamic state web page development tool of the type, such as ASP, PHP3 etc., because speed etc. reason, have already can't satisfy current the large electronic commerce needs appliedly, traditional development techniques are all at to edit and translate the executive way change, such as the ASP → ASP+;PHP3 → PHP4.

In the JSP norm book, did not request the procedure in the JSP code part( be called the Scriptlet) and must write with the Java definitely. Actually, have some engines of JSP are adoptive other script languages such as the EMAC- Script, etc., but actually this a few script languages also are to set up on the Java, edit and translate for the Servlet to carry out of. Write according to the norm of JSP, have no Scriptlet of relation with Java also is can of, however, mainly lie in the ability and JavaBeans, the Enterprise JavaBeanses because of the JSP strong function to work together, so even is the Scriptlet part not to use the Java, edit and translate of performance code also should is related with Java.

1.4JSP MECHANISM

To comprehend the JSP how unite the technical advantage that above various speak of, come to carry out various result easily, the customer must understand the differentiation of" the module develops for the web page of the center" and" the page develops for the web page of the center" first.

The SSJS and ASP are all in several year ago to release, the network of that time is still very young, no one knows to still have in addition to making all business, datas and the expression logic enter the original web page entirely heap what better solve the method. This kind of model that take page as the center studies and gets the very fast development easily. However, along with change of time, the people know that this kind of method is unwell in set up large, the Web that can upgrade applies the procedure. The expression logic write in the script environment was lock in the page, only passing to shear to slice and glue to stick then can drive heavy use. Express the logic to usually mix together with business and the data logics, when this makes be the procedure member to try to change an external appearance that applies the procedure but do not want to break with its llied business logic, apply the procedure of maintenance be like to walk the similar difficulty on the eggshell. In fact in the business enterprise, heavy use the application of the module already through very mature, no one would like to rewrite those logics for their applied procedure.HTML and sketch the designer handed over to the implement work of their design the Web plait the one who write, make they have to double work- Usually is the handicraft plait to write, because have no fit tool and can carry the script and the HTML contents knot to the server to put together. Chien but speech, apply the complexity of the procedure along with the Web to promote continuously, the development method that take page as the center limits sex to become to get up obviously.

At the same time, the people always at look for the better method of build up the Web application procedure, the module spreads in customer's machine/ server the realm. JavaBeans and ActiveX were published the company to expand to apply the procedure developer for Java and Windows to use to come to develop the complicated procedure quickly by" the fast application procedure development"( RAD) tool. These techniques make the expert in the some realm be able to write the module for the perpendicular application plait in the skill area, but the developer can go fetch the usage directly but need not control the expertise of this realm.

Be a kind of take module as the central development terrace, the JSP appeared. It with the JavaBeans and Enterprise JavaBeans( EJB) module includes the model of the business and the data logic for foundation, provide a great deal of label and a script terraces to use to come to show in the HTML page from the contents of JavaBeans creation or send a present in return. Because of the property that regards the module as the center of the JSP, it can drive Java and not the developer of Java uses equally. Not the developer of Java can pass the JSP label( Tags) to use the JavaBeans that the deluxe developer of Java establish. The developer of Java not only can establish and use the JavaBeans, but also can use the language of Java to come to control more accurately in the JSP page according to the expression logic of the first floor JavaBeans.

See now how JSP is handle claim of HTTP. In basic claim model, a claim directly was send to JSP page in. The code of JSP controls to carry on hour of the logic processing and module of JavaBeanses' hand over with each other, and the manifestation result in dynamic state bornly, mixing with the HTML page of the static state HTML code. The Beans can be JavaBeans or module of EJBs. Moreover, the more complicated claim model can see make from is request other JSP pages of the page call sign or Java Servlets.

The engine of JSP wants to chase the code of Java that the label of JSP, code of Java in the JSP page even all converts into the big piece together with the static state HTML contents actually. These codes piece was organized the Java Servlet that customer can not see to go to by the engine of JSP, then the Servlet edits and translate them automatically byte code of Java.

Thus, the visitant that is the website requests a JSP page, under the condition of it is not knowing, an already born, the Servlet actual full general that prepared to edit and translate completes all works, very concealment but again and efficiently. The Servlet is to edit and translate of, so the code of JSP in the web page does not need when the every time requests that page is explain. The engine of JSP need to be edit and translate after Servlet the code end is modify only once, then this Servlet that editted and translate can be carry out. The in view of the fact JSP engine auto is born to edit and translate the Servlet also, need not procedure member begins to edit and translate the code, so the JSP can bring vivid sex that function and fast developments need that you are efficiently.

Compared with the traditional CGI, the JSP has the equal advantage. First, on the speed, the traditional procedure of CGI needs to use the standard importation of the system to output the equipments to carry out the dynamic state web page born, but the JSP is direct is mutually the connection with server. And say for the CGI, each interview needs to add to add a progress to handle, the progress build up and destroy by burning constantly and will be a not small burden for calculator of be the server of Web. The next in order, the JSP is specialized to develop but design for the Web of, its purpose is for building up according to the Web applied procedure, included the norm and the tool of a the whole set. Use the technique of JSP can combine a lot of JSP pages to become a Web application procedure very expediently.

JSP的技术发展历史

作者: Kathy Sierra and Bert Bates

来源: Servlet&JSP

Java Server Pages(JSP)是一种基于web的脚本编程技术,类似于网景公司的服务器端Java脚本语言—— server-side JavaScript(SSJS)和微软的Active Server Pages(ASP)。与SSJS和ASP相比,JSP具有更好的可扩展性,并且它不专属于任何一家厂商或某一特定的Web服务器。尽管JSP规范是由Sun公司制定的,但任何厂商都可以在自己的系统上实现JSP。

JSP(全称JavaServer Pages)是由Sun Microsystems公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成HTML、XML或其他格式文档的Web网页的技术标准。JSP技术是以Java语言作为脚本语言的,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序。JSP使Java代码和特定的预定义动作可以嵌入到静态页面中。JSP句法增加了被称为JSP动作的XML标签,它们用来调用内建功能。

在Sun正式发布JSP(Java Server Pages)之后,这种新的Web应用开发技术很快引起了人们的关注。JSP为创建高度动态的Web应用提供了一个独特的开发环境。按照Sun的说法,JSP能够适应市场上包括Apache WebServer、IIS4.0在内的85%的服务器产品。

本文将介绍JSP相关的知识,以及JavaBean的相关内容,当然都是比较粗略的介绍其中的基本内容,仅仅起到抛砖引玉的作用,如果读者需要更详细的信息,请参考相应的JSP的书籍。

1.1 概述

JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,其在动态网页的建设中有其强大而特别的功能。JSP与Microsoft的ASP技术非常相似。两者都提供在HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。下面我们简单的对它进行介绍。

JSP页面最终会转换成servlet。因而,从根本上,JSP页面能够执行的任何任务都可以用servlet来完成。然而,这种底层的等同性并不意味着servlet和JSP页面对于所有的情况都等同适用。问题不在于技术的能力,而是二者在便利性、生产率和可维护性上的不同。毕竟,在特定平台上能够用Java编程语言完成的事情,同样可以用汇编语言来完成,但是选择哪种语言依旧十分重要。

和单独使用servlet相比,JSP提供下述好处:

JSP中HTML的编写与维护更为简单。JSP中可以使用常规的HTML:没有额外的反斜杠,没有额外的双引号,也没有暗含的Java语法。

能够使用标准的网站开发工具。即使是那些对JSP一无所知的HTML工具,我们也可以使用,因为它们会忽略JSP标签(JSP tags)。

可以对开发团队进行划分。Java程序员可以致力于动态代码。Web开发人员可以将经理集中在表示层(presentation layer)上。对于大型的项目,这种划分极为重要。依据开发团队的大小,及项目的复杂程度,可以对静态HTML和动态内容进行弱分离(weaker separation)和强分离(stronger separation)。

此处的讨论并不是说人们应该放弃使用servlet而仅仅使用JSP。事实上,几乎所有的项目都会同时用到这两种技术。在某些项目中,更适宜选用servlet,而针对项目中的某些请求,我们可能会在MVC构架下组合使用这两项技术。我们总是希望用适当的工具完成相对应的工作,仅仅是servlet并不一定能够胜任所有工作。

1.2 JSP的由来

Sun公司的JSP技术,使Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的)。

Java Servlet是JSP技术的基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成,Servlet这个名称源于Applet,现在国内的翻译方式很多,本书为了避免误会,决定直接采用Servlet而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。Servlet其实和传统的CGI、ISAPI、NSAPI等Web程序开发工具的作用是相似的,在使用Java Servlet以后,用户不必再使用效率低下的CGI方式,也不必使用只能在某个固定Web服务器平台运行的API方式来动态生成Web页面。许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet。得益于Java的跨平台的特性,Servlet也是平台无关的,实际上,只要符合Java Servlet规范,Servlet是完全与平台无关且是与Web服务器无关的。由于Java Servlet内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此Java Servlet效率非常高。

但Java Servlet也不是没有缺点,和传统的CGI、ISAPI、NSAPI方式相同,Java Servlet是利用输出HTML语句来实现动态网页的,如果用Java Servlet来开发整个网站,动态部分和静态页面的整合过程会非常难以实现。为了解决Java Servlet的这种缺点,SUN推出了JSP。

许多年前,Marty受到邀请,参加一个有关软件技术的小型研讨会.坐在Marty旁边的人是James Gosling--- Java编程语言的发明者。隔几个位置,是来自华盛顿一家大型软件公司的高级经理。在讨论过程中,研讨会的主席提出了Jini的议题,这在当时是一项新的Java技术。主席向该经理询问他的想法.他回答说,虽然现在言之过早,但这看起来会是非常有前途的一项技术。他们会持续关注这项技术,如果这项技术变得流行起来,他们会遵循公司的“接受并扩充(embrace and extend)”的策略.此时, Gosling随意地插话说“你的意思其实就是不接受且不扩充(disgrace and distend)。”

在此, Gosling的抱怨显示出,他感到这个公司会从其他公司那里拿走技术,用于他们自己的目的.出人意料的是,形势已经完全不同。Java团队并没有发明这一思想----将页面设计成由静态HTML和用特殊标签标记的动态代码混合组成.。ColdFusion多年前就已经这样做了。甚至ASP(来自于前述经理所在公司的一项产品)都在JSP出现之前推广了这种方式。实际上,JSP不只采用了这种通用概念,它甚至使用许多和ASP相同的特殊标签。

JSP是建立在Java servlets模型之上的表达层技术,它使编写HTML变得更简单。像SSJS一样,它也允许你将静态HTML内容与服务器端脚本混合起来生成动态输出。JSP把Java作为默认的脚本语言,然而,就像ASP可以使用其他语言(如JavaScript和VBScript)一样,JSP规范也允许使用其他语言。

1.3 JSP的特点

按照脚本语言是服务于某一个子系统的语言这种论述,JSP应当被看作是一种脚本语言。然而,作为一种脚本语言,JSP又显得过于强大了,在JSP中几乎可以使用全部的Java类。

作为一种基于文本的、以显示为中心的开发技术,JSP提供了Java Servlet的所有好处,并且,当与一个JavaBeans类结合在一起时,JSP提供了一种使内容和显示逻辑分开的简单方式。分开内容和显示逻辑的好处是,更新页面外观的人员不必懂得Java代码,而更新JavaBeans类的人员也不必是设计网页的行家里手,就可以用带JavaBeans类的JSP页面来定义Web模板,以建立一个由具有相似的外观的页面组成的网站。JavaBeans类完成数据提供,这样在模板中就没有Java代码,这意味着这些模板可以由一个HTML编写人员来维护。当然,也可以利用Java Servlet来控制网站的逻辑,通过Java Servlet调用JSP文件的方式来将网站的逻辑和内容分离。

一般来说,在实际的JSP引擎中,JSP页面在执行时是编译式,而不是解释式的。解释式的动态网页开发工具如ASP、PHP3等由于速度等原因已经满足不了当前大型电子商务应用的需要了,传统的开发技术都在向编译执行的方式改变,如ASP→ASP+;PHP3→PHP4。

在JSP规范书中,并没有明确要求JSP中的程序代码部分(称为Scriptlet)一定要用Java来写。实际上,有一些JSP引擎就是采用的其他脚本语言,如EMAC-Script、WebL等,但实际上这几种脚本语言也是构建在Java上面,编译为Servlet来实现的。按照JSP规范书写,和Java没有任何关系的Scriptlet也是可以的,不过,由于JSP的强大功能主要在于能和JavaBeans、Enterprise JavaBeans共同运转,所以即使是Scriptlet部分不使用Java,编译成的执行代码也应该是与Java相关的。

1.4 JSP的机制

要理解JSP怎样联合以上各种所提到的技术的优点,从而轻而易举地实现各种效果,用户必须首先了解“组件为中心的网页开发”和“页面为中心的网页开发”的区别。

SSJS和ASP都是在几年前推出的,那时网络还很年轻,没有人知道除了把所有的商务、数据和表达逻辑统统堆进原始网页中之外还有什么更好的解决方法。这种以页面为中心的模型容易学习并且得到相当快速的发展。然而,随着时间的推移,人们认识到这种方法不适于构建大型的、可升级的Web应用程序。在脚本环境中书写的表达逻辑被锁在页面内,只有通过剪切和粘贴才能被重用。表达逻辑通常和商务及数据逻辑混在一起,这使得当程序员试图改变一个应用程序的外观而不想破坏与之紧密结合的商务逻辑时,应用程序的维护就变得十分艰难。其事实上,企业中可重用组件的应用早已经很成熟,没有人愿意为它们的应用程序重写那些逻辑。HTML和图形设计师把它们的设计的实施工作交给了Web编写者,使他们不得不加倍工作—— 常常是手工编写,因为没有合适的工具可以把服务器端脚本与HTML内容结合起来。简而言之,随着Web应用程序的复杂性不断提升,以页面为中心的开发方式的局限性变得明显起来。

与此同时,人们一直在寻找建立Web应用程序的更好方法,组件在客户机/服务器领域流行起来。JavaBeans和ActiveX被“快速应用程序开发”(RAD)工具发行商推广给Java和Windows应用程序开发者用来快速开发复杂的程序。这些技术使某领域内的专家可以为本领域内的垂直应用编写组件,而开发者可以直接拿来使用而不必掌握这一领域的专门技术。

作为一种以组件为中心的开发平台,JSP出现了。它以JavaBeans和Enterprise JavaBeans(EJB)组件包含商务和数据逻辑的模型为基础,提供大量标签和一个脚本平台用来在HTML页中显示由JavaBeans产生或回送的内容。由于JSP的以组件为中心的性质,它可以被Java和非Java开发者同样使用。非Java开发者可以通过JSP的标签(Tags)来使用高级Java开发者创建的JavaBeans。Java开发者不仅可以创建和使用JavaBeans,还能在JSP页中使用Java语言来更精密地控制基于底层JavaBeans的表达逻辑。

现在来看看JSP是如何处理HTTP请求的。在基本请求模型中,一个请求直接被送到JSP页中。JSP代码控制着进行逻辑处理时与JavaBeans组件的交互,并在动态生成的、混合了静态HTML代码的HTML页中显示结果。Beans 可以是JavaBeans 或EJB组件。另外,更加复杂的请求模型可看作从被请求页呼叫其他JSP页或Java Servlets。

JSP引擎实际上要把JSP标签、JSP页中的Java代码甚至连同静态HTML内容都转换为大块的Java代码。这些代码块被JSP引擎组织到用户看不到的Java Servlet中去,然后Servlet自动把它们编译成Java字节码。这样,当网站的访问者请求一个JSP页时,在它不知道的情况下,一个已经生成的、预编译过的Servlet实际上将完成所有的工作,非常隐蔽而又高效。因为Servlet是编译过的,所以网页中的JSP代码不需要在每次请求该页时被解释一遍。JSP引擎只需在Servlet代码最后被修改后编译一次,然后这个编译过的Servlet就可以被执行了。由于是JSP引擎自动生成并编译Servlet,不用程序员动手编译代码,所以JSP能带给你高效的性能和快速开发所需的灵活性。

和传统的CGI相比较,JSP有相当的优势。首先,在速度上,传统的CGI程序需要使用系统的标准输入输出设备来实现动态网页的生成,而JSP是直接和服务器相关联的。而且对于CGI来说,每一个访问就需要新增加一个进程来处理,进程不断地建立和销毁对于作为Web服务器的计算机将是不小的负担。其次,JSP是专门为Web开发而设计的,其目的是为了建立基于Web的应用程序,其中包含了一整套的规范和工具。使用JSP技术可以很方便地将一大堆JSP页面组合成为一个Web应用程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值