基于java 互联网驾校预约系统设计与实现
博主介绍:专注于Java .net php phython 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作
☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟我的博客空间发布了1000+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
中文摘要
摘 要
互联网驾校预约系统是主要是对驾校学员的训练信息实行有效的预约管理。本系统为学员建立完整的个人档案。而基于Web的预约平台以互联网驾校预约系统为后台支持,提供远程用户注册、预约、查询、留言板等网络在线服务功能,方便用户,高他们的生活质量及学习效率。
互联网驾校预约系统主要包括推荐教练、预约、查询、站内新闻、用户注册、后台管理等共九个工作站及一个前端Web平台,这些信息数据库,为学员提供及时,准确,方便的服务。
本人的主要工作是负责系统整体架构的设计,协调系统开发进度、系统的设计与实现。为了保证系统具有更好的性能和健壮性,系统采用多项先进技术,如:JSP,存储过程,索引技术等,
关键词 预约 BS 结构;.JSP;SQL;存储过程
Abstract
Community Medical Information System (CMIS) is an important part of Regional Healthy System (RHS). It focuses on the health state of the people in a community. With the help of CMIS, The Community Medical Organization can build the integrated files about the health condition of the residents who live in the community. So the organization can provide medical services, such as physical examination, immune prevent, for the people. The on-line web platform can provide the users rich medical information. The residents of the community can also access the web site and will receive more services. These will improve their life qualities continuously.
The CMIS includes nine workstations and the web platform, such as doctor workstation, physical examination workstation, schedules system, device management system and medicine management system and so on. This workstation is to share the same database. With the help of these workstations, medical staffs can provider faster, exacter and more convenient service for residents. The medical care will be greatly improved with the CMIS.
My primary tasks include the architecture design of CMIS and the implementation of device management. We use technologies such as ADO.net, stored procedure and Index, then that CMIS will run better and more robust. During CMIS developing, we use VSS2005 to ensure source codes safe and version management.
Key Words Device Management; C/Sstructure; JSP; SQL; Stored Procedure
目 录
4.4 HTML(Hyper Text Markup Language) 43
一项目背景
随着城市化建设步伐的不断加快,人们的生活居住条件有了很大的改进,从各自为政的散居式住宅逐渐转变成新型的居民小区式住宅。但是作为保障居民健康的医疗条件却没有得到相应的改善。据调查,居民小区,特别是农村郊区的小区,它们附近的医疗单位大多数是以私人诊所为主,这些私人诊所的医疗设备不足,专业人员少,急救设施不全等等不足因素,大大降低了小区居民的医疗保障,不能满足人们的医疗保障需要。在这种背景下,社区医疗萌芽,并迅速蓬勃发展起来,成为当今一大热点。但是目前社区医疗并不成熟,包括制度与管理等等。根据网上的一些调查,只有13%左右的居民愿意到社区医院看病,而大部分居民更愿意到市级的医院。他们认为许多病在社区医院看不好。所以,我们设计互联网驾校预约系统,帮助医院的管理以及实现社区医院与省级、市级医院的资源共享,从而提高社区医院的实力,保障小区居民的健康。
随着国家和国内各医疗机构对数字化医院建设的重视,医疗卫生信息系统在今后一段时间内将会出现一个飞速发展的时期,主要体现在以下几方面。
(1) 集成化。随着数字化程度的提高,各类医疗信息应用专业性越来越高,医疗信息系统的分类会越来越细,各类专业医疗信息系统的集成将会成为数字化医院建设中面临的一个最大问题。
(2) 区域化。为实现病人一生全电子病历的目标,数字化医院的范畴将逐渐从一个医院往外拓展到医院集团、整个区域,乃至全社会内所有医院的信息系统网络。
(3) 标准化。各类通讯标准(如DICOM,HL7)将进一步发展,满足更多的工作流集成的需要,IHE集成框架也会越来越被各类信息系统所支持。基于XML的医疗数据标准会有很大发展,并已广泛应用于在各类医疗信息系统彼此间交换数据。
(4) 智能化。以医疗信息数字化为前提,各类基于信息处理技术以及专家知识库的医疗智能决策会进一步发展,为诊断和治疗提供越来越多的支持
1.2意义和目的
开发互联网驾校预约系统是为了适应国家对驾校预约信息化建设的需要,并为社区成员提供更全面、更便利、更及时准确的服务。驾校预约系统是区域驾校预约系统的前端系统,主要是对驾校学员的个人信息实行有效的管理。驾校机构为学员建立完整的培训档案,安排体检以及实施免疫等预防措施。而驾校预约系统以互联网驾校预约系统为后台支持,提供远程预约、查询、新闻、统计等网络在线功能,方便学员,提高他们的训练效率。
1.3开发思想原则
1.3.1 信息系统开发方法
目前,常用的信息系统的开发方法有生命周期法、原型法和面对对象的开发方法。下面仅对原型法和面对对象的开发方法进行简单的描述。
原型法:
原型法(PrototypingMethod)是20世纪80年代发展起来的,旨在改变生命周期法的缺点的一种系统开发方法。
①原型法的基本思想
首选根据用户的要求,由用户和开发者共同确定系统的基本要求和主要功能,利用系统快速生成工具,建立一个系统模型。再在此基础上与用户交流,将模型不断补充,修改完善,如此反复,最终直至用户和开发者都比较满意为止,就形成了一个相对稳定、较为理想的信息系统。
②原型法的开发过程
采用原型法开发管理信息系统可以分为如下几个阶段:
A、确定用户的基本需求。由用户提出对新系统的基本要求,如功能、基本界面形式、所需的数据、应用范围、运行环境等,开发者根据这些信息估算出开发该系统所需的费用,并建立简明的系统模型。
B、开发初步的原型系统。系统开发人员根据用户的要求建立原型系统,但该系统只是一个初步的、不成熟的系统,从系统的工作效率上看也是不完善的。其主要目的是为了描述开发者所理解的用户的基本需求。
C、修改、评价原型系统。将建造好的原型系统交给用户,并投入试运行,用户将使用过程中发现的问题一一记录下来,并与开发人员进行交流。开发人员针对这些问题不断地对系统进行修改、扩充与完善,直至用户满意为止。
D、形成最终的管理信息。对用户满意的原型系统进行进一步的开发,不断补充、完善,最终形成一个适用的管理信息系统。
③原型法的优缺点
原型法的优点是开发周期短,费用较少,同时可以较有效地避免因开发者和用户的认识隔阂所产生的失败,其缺点是系统的开发缺乏统一的规划和开发标准,难以对系统的开发过程加以控制。
原型法一般适用于开发规模不大、不太复杂或需求经常发生变化的系统。
面向对象的开发方法:
面向对象(ObjectOriented)的技术于20世纪80年兴起,随后广泛地应用于计算机技术的几乎所有领域。面向对象的技术中最重要的概念是对象。
面向对象是基于问题对象的自底向上的一种系统开发方法。在开发过程中,分析和设计阶段独立于程序设计语言,信息系统模型设计好后,最终用具体的程序设计语言、数据库或硬件来实现。面向对象法最主要的特点是对对象为基础,对象是分析问题和解决问题的核心。
①面对对象法的开发过程
面对对象法的开发过程一般分为四个阶段:
A、认识客观世界(如一个社区中)中的对象以及行为,分别独立设计各个对象的实体。
B、分析对象之间的联系和相互之间所传递的信息,由此构造客观世界(学校)所对应的信息管理系统的模型。
C、由信息系统的模型转换成计算机软件系统的模型。
D、由计算机软件系统的模型再转化成一个现实系统。
②面向对象法的优缺点:
面向对象法的优点是便于帮助分析者、设计者和用户清楚地表达抽象概念,互相进行交流;交流特定的软件工具模块,直接地完成了从对象的描述到软件体系结构之间的转换,避免了其它的方法在开发过程的客观世界描述和软件结构不一致性和复杂性问题,便利系统开发简单、统一,开发周期短,费用低。
面向对象法的主要缺点与原型法一样,因此这种方法也不适用于开发大的、复杂的系统。
本系统在开发过程中具体是采用了原型法和面向对象两种方法相结合的开发思路,力求在开发过程中尽量吸收这两种方法的长处,而克服它们的短处。
1.3.2 系统调研
系统调研是开发任何软件项目必不可少的重要阶段,因为只有经过详细的调研,才能真正确定项目的可行性,需求分析等情况,对于MIS系统,正式开发系统之前进行调研更是非常必要的,其必要性主要表现在以下几个方面。
A:明确用户的要求,以根据调查结果进行可行性分析,确认系统的开发是否可行。
B:提出新系统的人员并不都是系统研究人员,有些人对于的功能和处理数据的方法没有明确的认识。它们只是根据自己业务工作的需要提出了要求,系统开发人员要对此进行详细的调查和分析,确认用户的要求可以通过现有的计算机技术实现,保证开发的管理信息系统的功能与用户提出的要求相吻合。
C:现行系统可能是手工系统,也可能是使用和计算机的系统,无论是何种情况,都要详细地调查现行系统中信息处理的具体情况,系统内部功能结构,以便设计出一个合理的、好的新系统逻辑模型,为新系统的设计工作打好基础,保证整个系统开发的质量。
总之,必要对现行系统进行详细的调查,明确用户需求,保证开发的新系统的功能与用户的要求相吻合,避免耗费大量的人力、物力、财力,新系统的开发却失败的悲剧发生。
由于本系统是属于互联网驾校预约系统中的子系统,而且是研究性项目,所以不能像实际项目一样有很好的条件去实地调研,在项目的前期,主要通过网络查找资料,获得对系统的更多准确的认识,同时整个项目组到XXX大学第一附属医院进行实地调研,这些调研渠道使得本人最大程度地克服了硬件上的条件不足,对系统有了比较准确的认识。
1.3.3 可行性分析
可行性分析是在用户的要求和系统调研的基础上进行的,对新系统的开发从社会、技术、经济、管理等方面进行分析,并得出新系统的开发工作可行、不可行、需要修改、追加投资、暂缓开发、分步实施等方案和结论,最后完成可行性分析。
可行性分析一般可定义为:可行性分析是在建设的前期对工程项目的一种考察和鉴定,对拟议中的项目进行全面与综合的技术、经济能力的调查,判断它是否可行。
(1)可行性分析阶段的主要工作包括以下几个方面:
①新系统目标可行性分析:分析新系统的目标是否符合现状和发展的需要。
②社会可行性分析:社会可行性分析主要是指管理信息系统的开发是否符合国家法律、下策,是否能够与社会大系统实现良好的对接。
③技术可行性分析:技术可行性分析是根据新系统的目标来衡量是否具备所需要的技术,包括系统开发人员数量和水平,硬件方面,软件方面及其它应用技术。
④经济可行性分析:经济可行性分析主要是对开发新系统所投入的资金与系统投入使用后所带来的经济效益进行比较,确认新系统是否会给社区带来一定的经济效益。
⑤管理可行性分析:管理可行性分析主要是分析社区现行的管理体制和领导是否具有现代化的管理意识和管理水平。
1.3.3..1 经济可行性
由于互联网驾校预约系统所要求的硬件(计算机及相关硬件)和软件环境(JSP+SQL),市场上都容易购买到或从相关网站下载,而据不完全调查统计本学校学生电脑拥有率是85%-90%左右,系统成本主要集中在本管理系统的开发与维护上,对学校和学生不会造成过重的经济负担。而一旦此系统投入使用,不仅可以减少学校实验室等公共学习资源的工作强度,提高资源共享率,在不增加现有资源的前提下提高资源使用率,极大限度的方便了学生学习。而且,目标系统不是很复杂,开发的周期较短,人员经济支出不大,所节省的大量人力、财力产生的效益将远远大于本借阅系统的开发成本,所以从经济方面讲开发此系统是可行的。
1.3.3..2 技术可行性
互联网驾校预约系统的开发基于B/S模式,主要包括前端应用程序的开发以及后台数据库的建立和维护两个方面。对于前者要求应具备功能完备、易于使用等特点,而对于后者则要求能建立数据一致性和完整性强、数据安全性好的库。
本系统拟采用JSP(Active Server Pages)和MS SQL分别作为前端和后端的开发工具。
JSP是目前比较流行的一种制作动态网页的技术,使用VBScript、JavaScript等简单易学的脚本语言,结合HTML代码,即可快速地完成系统的应用程序;无须编译、容易编写,可在服务器端直接执行;使用普通的文本编辑器,如Windows的记事本,既可以进行编辑设计;与浏览器无关,客户端所使用的浏览器只要可执行HTML码,即可浏览JSP所设计的网页内容就行,JSP所使用的脚本语言(VBScript、JavaScript)均在Web服务器端执行,客户端的浏览器不需要能够执行这些脚本语言;JSP能与任何Active Scripting语言兼容,除了可使用VBScript或JavaScript语言来设计外,还可以通过plug-in的方式,使用由第三方提供的其他脚本语言,譬如REXX、Perl、Tcl等,脚本引擎是处理脚本程序的COM (Component Object Model);可使用服务器端的脚本来产生客户端的脚本;ActiveX Server Components(ActiveX服务器组件)具有无限可扩充性。可以使用Visual Basic、Java、VisualC++、COBOL等程序设计语言来编写你所需要的ActiveX Server Components。
SQL作为微软在Windows 系列平台上开发的数据库,一经推出就以其易用性得到了很多用户的青睐,相信大多数将自己的业务建立在Windows平台上的用户都会对它有相当的亲切感。区别于FoxPro、ACCESS小型数据库,SQL是一个功能完备的数据库管理系统。它包括支持开发的引擎、标准的SQL语言、扩展的特性(如复制、OLAP、分析)等功能。而像存储过程、触发器等特性,也是大型数据库才拥有的。
因此从技术方面讲开发此系统是可行的。
1.3.3..3 操作可行性
当前执行的互联网驾校预约系统有如下几个缺点,一是造成很多的学生因为没有及时查看而误了很多事务,二是造成学校在管理体系方面的投入。而造成这种管理渠道和学生需求极不协调的尴尬局面的真正原因,是因为这其中的管理系统的不完备和不系统。所以,只需解决学校内现有管理系统的建设增加网络渠道,即可解决上述问题。
本学校管理办公室设置齐全,在驾校预约系统方面做得很系统,具备着做互联网驾校预约系统的基础硬件条件。
综上所述,某某学校很有必要,也很有条件做到互联网驾校预约系统,以更方便学生学习学校政务信息,更合理地使现有医疗预约挂号系统资源发挥最大的作用。
1.2 论文各章简介
第1章引言部分,引言主要叙述课题的可行性分析。
第2章主要内容是:系统需求分析 包括,业务流程分析;数据流分析;数据字典。
第3章主要内容是:互联网驾校预约系统的具体实现 包括,用户操作界面;管理员用户操作界面等。
最后还有结论、致谢、参考文献等等内容的介绍。
二 需求分析
2.1 业务流分析
互联网驾校预约系统工作流程为:系统启动并进入系统首页界面,在页面用户登录栏进行登录。所有用户都可以浏览系统主页面。通过权限判断,注册用户只能浏览系部概况、系部动态、站内公告、用户注册、教练查询、留言板等信息,以及进行留言。管理员可以进行系统后台的所有操作,包括管理上述信息及系统管理员帐号管理、数据备份及数据恢复。
本系统的业务流程图如图2-1所示:
本系统是利用现代化的计算机网络技术将传统医疗预约挂号系统方式整合,按照实践过程设计完成的。同时完善服务,初步设计一个在线医疗预约挂号信息的平台以利于注册用户进行相关的事务操作。为了使系统在各项管理中发挥更大的作用,实现工作过程的计算机化,提高工作效率和工作质量,现提出如下系统开发目标:
具体目标如下:
(1)操作简单、界面友好:完全控件式的页面布局,使得信息的录入工作更简便。
(2)即时可见:对信息的处理(包括添加、修改、删除)将立即在对应的版块显示出来,达到"即时发布、即时见效"的功能。
(3)功能完善:不仅包括常见系统的信息管理的各个方面:信息录入、浏览、删除、修改、查询等各个方面,完整地实现了系统对即时信息的管理要求。
(4)方便移植:系统应具有实用性、可靠性和适用性,同时注意到先进性。针对不同的用户,只需要稍作修改就可以开发出适合自己特点的驾校预约网站。系统界面中所需的数据都存放于数据文件中,只要对该文件做部分修改,就能在系统界面上实现及时更新的效果,减少了更改系统源代码的复杂性。
(5)动态管理:对系统数据库实行动态操作,能实现对数据库信息的动态查询、动态更新修改和动态录入数据。
2.2 数据流分析
数据流程分析主要包括对信息的流动、传递、处理、存储等的分析。数据流程分析的目的就是要发现和解决数据流通中的问题。现有的数据流程分析多是通过分层的数据流程图(data flow diagram,简称DFD)来实现的。其具体的做法是:按业务流程图理出的业务流程顺序,将相应调查过程中所掌握的数据处理过程,绘制成一套完整的数据流程图。
互联网驾校预约系统的数据流程:对本系统操作的数据源有注册用户和管理员两种用户,管理员有权限对数据库中的数据进行添加。不同权限的用户可以对这些库信息进行添加、修改和删除处理。所有用户均可以进行信息查询。所有用户均可进行在线留言系统。通过对本系统的需求分析,系统的基本功能已经确定。
2.3 数据字典
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。数据流图和数据字典共同构成系统的逻辑模型。
2.3.1 互联网驾校预约系统的数据字典
1.数据字典列表——数据流
数据存储名称:注册用户信息 数据来源:注册用户信息表 数据去向:注册用户信息模块 数据组成:注册用户信息=系统唯一标识+编号+姓名+性别+电话+身份证+学历+地址+邮箱+入党时间+出生年月+备注+图片+注册时间等 描述:存储了注册用户的基本信息 |
数据存储名称:管理员信息 数据来源:管理员信息表 数据去向:管理员信息模块 数据组成:管理员信息=系统唯一标识+用户名+密码+权限+添加时间 描述:存储了管理员信息 |
2.数据字典列表——数据处理
3.数据字典列表——数据存储
2.3.2 互联网驾校预约系统的数据项
管理员数据项:
注册用户数据项
2.3.3互联网驾校预约系统的数据结构
allusers表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | username | VarChar | 50 | 是 | 255 | |
3 | pwd | VarChar | 50 | 是 | 255 | |
4 | cx | VarChar | 50 | 是 | 255 | |
5 | addtime | DateTime | 8 | 是 | 23 |
liuyanban表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | cheng | VarChar | 50 | 是 | 255 | |
3 | xingbie | VarChar | 50 | 是 | 255 | |
4 | | VarChar | 50 | 是 | 255 | |
5 | youxiang | VarChar | 50 | 是 | 255 | |
6 | dianhua | VarChar | 50 | 是 | 255 | |
7 | neirong | VarChar | 50 | 是 | 255 | |
8 | addtime | DateTime | 8 | 是 | 23 | |
9 | huifuneirong | VarChar | 50 | 是 | 255 |
xinwentongzhi表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | biaoti | VarChar | 300 | 是 | 255 | |
3 | leibie | VarChar | 50 | 是 | 255 | |
4 | neirong | Text | 16 | 是 | 255 | |
5 | tianjiaren | VarChar | 50 | 是 | 255 | |
6 | addtime | DateTime | 8 | 是 | 23 |
yishengxinxi表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | gonghao | VarChar | 50 | 是 | 255 | |
3 | xingming | VarChar | 50 | 是 | 255 | |
4 | xingbie | VarChar | 50 | 是 | 255 | |
5 | zhicheng | VarChar | 50 | 是 | 255 | |
6 | keshi | VarChar | 50 | 是 | 255 | |
7 | dianhua | VarChar | 50 | 是 | 255 | |
8 | shangbanshijian | VarChar | 50 | 是 | 255 | |
9 | zhaopian | VarChar | 50 | 是 | 255 | |
10 | beizhu | VarChar | 50 | 是 | 255 | |
11 | addtime | DateTime | 8 | 是 | 23 |
yonghuzhuce表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | juese | VarChar | 50 | 是 | 255 | |
3 | yonghuming | VarChar | 50 | 是 | 255 | |
4 | mima | VarChar | 50 | 是 | 255 | |
5 | xingbie | VarChar | 50 | 是 | 255 | |
6 | dianhua | VarChar | 50 | 是 | 255 | |
7 | | VarChar | 50 | 是 | 255 | |
8 | shenfenzheng | VarChar | 50 | 是 | 255 | |
9 | dizhi | VarChar | 50 | 是 | 255 | |
10 | addtime | DateTime | 8 | 是 | 23 |
youqinglianjie表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | wangzhanmingcheng | VarChar | 50 | 是 | 255 | |
3 | wangzhi | VarChar | 50 | 是 | 255 | |
4 | addtime | DateTime | 8 | 是 | 23 |
yuyuejilu表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | yishengbianhao | VarChar | 50 | 是 | 255 | |
3 | yishengxingming | VarChar | 50 | 是 | 255 | |
4 | keshi | VarChar | 50 | 是 | 255 | |
5 | yuyueren | VarChar | 50 | 是 | 255 | |
6 | yuyuefangshi | VarChar | 50 | 是 | 255 | |
7 | yuyueshijian | VarChar | 50 | 是 | 255 | |
8 | beizhu | VarChar | 50 | 是 | 255 | |
9 | addtime | DateTime | 8 | 是 | 23 |
有了如上的数据结构、数据项和数据流程,我们就能进行数据库设计。
2.4 数据库概念结构设计
根据前面的设计规划出的实体有:管理员实体、医生信息实体、预约记录实体、。各个实体的具体描述E-R图如下:
图2-4 管理员实体E-R图
图2-5 、医生信息实体E-R图
图2-6 预约记录实体E-R图
三 互联网驾校预约系统的具体实现
3.1 系统实现软件简介
互联网驾校预约系统应该完成开发者做好注册用户工作信息和注册用户之间的协调问题。要实现这些功能,必须有良好的Web技术的支持,目前常用的Web技术有:
1. 脚本语言
脚本语言是一种简单的描述性语言,它的语法结构与计算机上的高级语言非常相似,所以相对于其它的Web技术来说是简单易用的。脚本语言通过一个<SCRIPT>标识嵌入到HTML中,通过编程对Web页元素进行控制,从而实现Web页的动态化和交互性。目前常用的开发语言有VBScript和JavaScript。
2.CGI
通用网关接口(Common Gateway Interface,CGI)作为一种通信标准,它的任务是接受客户端的请求,经过确认和处理,生成HTML文档并重新传回到客户端。CGI可以运行在许多平台上,具有强大的功能。
3. JSP
JSP是动态服务器页面(Active Servers Pages, JSP)的简称,它是微软公司推出的一种用以取代CGI的技术。JSP为开发Web站点提供了强大的、基于服务器功能的应用框架。由于JSP的逻辑在Web服务器上运行,用JSP创建的易用可以被跨不同平台运行的多种Web浏览器访问。
4. Servlet及JSP
Servlet及JSP都是基于Java的技术。Servlet是用来扩展Web服务器功能的网络组件,它基于请求/响应机制。JSP和Servlet非常相似,但JSP并不是纯Java代码。
基于以上因素,选择以下工具作为本系统的开发工具:
目前,电子商务高速发展的今天,极其需要制作具有交互功能的网站,以满足电子商务的发展要求。但是目前不仅存在后台编写技术人员不足,而且普遍存在后台编写相关开发工具功能不完善。这一些使得设计和开发进程效率低下,从而削弱了网络应有的互动体验。
Macromedia MyEclipse 6.0 是专门为软件开发所设计的,电子商务必定是未来互联网重点发展方式之一。对此MyEclipse 6.0有它独到的解决方案。
首先,MyEclipse 6.0功能全面,能够制作复杂的JSP、JSP、Cold Fusion数据库动态网站,还能够扩展建立安全的可定制的电子商务软件。
其次,MyEclipse 6.0能迅速建立动态网站、与现存软件的网络接口、以及Active Server Pages(JSP)、Java Sever Pages(JSP)T Cold Fusion(CFML)支持的数据库。MyEclipse 6.0建立在强大的Dreamweaver网络开发平台上,可以非常直观地开发网络软件,而同时保持对代码的完全控制。拖放服务器行为,可以很容易地制显示、导航和更新数据库内容的网页。
再次,对于MyEclipse 6.0的功能扩展,Macromedia公司提供了大量的第三插件,其中包括了多种购物车功能插件。
除此之外,MyEclipse 6.0的扩展功能提供了开发学习系统所需的所有东西,让这些商店能够支持多种功能,而且容易维护。
MyEclipse 6.0 可以满足习惯于编码操作的网络应用建设者快速有效地对内码进行处理的需要。可以说, MyEclipse 6.0 是可以对Microsoft Active Server Pages (JSP)、Sun Microsystems JavaServer Pages (JSP)以及Allaire ColdFusion Markup Language (CFML)等不同标准的编码进行编辑处理的完美解决方案。使用它,不需要掌握复杂的源代码语言。而它做为Dreamweaver完整操作平台的一个组成部分,还起着融合一个大型网络开发团队中设计人员和程序人员的工作内容的重要桥梁任用。
网络应用创建者可以利用新版Server Behavior Builder,方便地生成符合各自开发标准的代码。基于其创建客户服务应用的能力, MyEclipse 6.0 同时预装了一套常用JSP、JSP及CFML服务器脚本素材库,方便用于在数据库中插入新的记录以及对已有数据库进行升级。
新版本为开发者提供了三种不同应用层次版本的所见即所得编程环境:Code View、Design View或new Split View。中心编码功能包括:Live Syntax色彩编码、设定自动缩进及线数、客户端的JavaScript调试器和对JavaBeans的支持。新的团队工作流程方式包括:对用于内容管理的WebDAV的支持,与Microsoft Visual SourceSafe的完美整合等等。这是一个完全整合的网络应用开发解决方案。这个软件包为网络开发者提供了一整套的创建HTML、JSP、JSP和CFML页以及GIF和JPEG图像的专业工具。便于开发者使用Fireworks MX创建、编辑以及动态生成网络图形和同时,利用MyEclipse 6.0 添加增强的互动效果、优化图像以及无失真的整合图形和编码元素。
基于以上因素,且是个人作业,确定使用MyEclipse 6.0作为开发动态网页的工具,减少了编写代码工作量,加快开发速度。
MyEclipse 6.0的工作流程大致分为以下6步:
- 系统分析
要创建一个具有电子政务功能的网站,道德就是需要分析。只有在详细的需要分析之后,才能决定网站的构架及数据库的结构。
- 制作静态页面
制作动态页面的第一步就是创建静态页面。可以运用Dreamweaver所有的设计工具来完成。
- 定义记录集
如果在就用程序中使用了数据库,下一步就要定义记录集(Recordset),以便人数据库中临时提取数据。应用程序不能直接调用数据库,它必须以记录集为中介。定义的任何记录集都将添加到数据库绑定面板中。可以将数据绑定面板中对应记录集的字段添加到Web页上,也就添加了动态内容。
- 添加动态内容
在向数据绑定面板中添加了记录集或其他数据源之后,就可以向你的Web页中添加动态内容,而不必考虑如何插入服务器端脚本到Web页中。这也正是它的优越之处。
- 添加服务器端行为,激活动态页面
向Web页面添加“智能化”命令来实现特定的功能。向页添加服务器行为(Server Behaviors)就是用VBScript、JavaScript、Java或ColdFusion编写的运行在服务器上的脚本。
- 编辑和调试Web页
MyEclipse 6.0提供了三种编辑环境:Dreamweaver传统的可视化编辑环境、MyEclipse 6.0活动数据(Live Data)编辑环境和源代码编辑环境。
Microsoft的动态服务器网页(Active Server Pages,JSP )技术目前已发展到了3.0版。对很多人来说,用JSP来创建Windows服务器平台上的动态Web网页、整个站点和基于We b的应用程序已经成为极其自然而然的方法。在浏览器地址栏中,文件扩展名.JSP同表示动态创建的网页的文件扩展名.pl或.cgi一样,已被浏览者所接受。事实上,对于在微软的操作系统上工作的We b程序员来说,JSP正在变成一种不再令人激动的技术,而仅是一种工作方式。这种看法的改变体现了一种技术的逐步成熟。由于JSP的应用程序的数量日益增多,JSP的工具也在日益增加,同时有越来越多的第三方开发商开发出一系列基于JSP或使用JSP的附加功能模块、ActiveX服务器组件,甚至成套的“自己做(do-it-yourself)”Web站点.
在JSP 3.0中,有一些新的特性或经历较大的变化或改进的特性。
1. 无脚本的JSP
如早先提到的,JSP处理不包括任何脚本的.JSP页的速度是很快的,假如你正在创建的站点或Web应用程序文件最终可能使用JSP,最好让这些文件使用.JSP文件扩展名,而不用考虑它们是包含服务器端脚本还是仅仅包含静态( HTML和文本)内容。
2. 新的流向控制能力
到目前为止,假如想把执行转向另外的一个JSP页,不得不使用Response Redirect语句,这个工作通过向客户端发送一个响应来指示其载入新的页面来实现。然而这对客户端来讲是费事的。而且当代理服务器用于客户端时,会引起错误的消息。JSP 3.0为Server对象提供了两个新的方法,允许在服务器上转换页面而不需要新的客户端的请求。Server Transfer是转换执行到另一个页面;而Server Execute是执行另一个页面,然后将控制返回原来的页面。在新的页面里可访问原来页面的环境,包括Response 和Request等所有JSP对象,但是不能访问页面范围的变量。假如原始的页面使用了一个事务标志(在开放的< % @ . . . % >元素中),事务的环境被传递到新的页面。假如第二个JSP文件的事务标志表明事务是受到支持的或需要的,则现有的事务将被使用,而不会开始一个新的事务。
3. 错误处理和新的JSP Error对象
通过提供一个用Server Transfer方法自动调用的定制的JSP页面,提供了可配置的错误处理。在这个JSP页面中,Server GetLastError可被用来返回一个JSP Error对象的实例,其中包含了错误的细节,例如错误的描述和相关的行号。
4. 编码后的JSP脚本
JSP脚本和客户端脚本现在可以使用BASE 6.4加密法进行编码。更高水平的加密计划将出现在JSP的未来新版本里(注意,这个特征是由VBScript 5.0和JScript 5.0脚本引擎实现的,因此在脚本被执行时要求这些引擎存在)。编码后的脚本将在运行时由脚本引擎解码。因此不必使用别的工具,尽管这不是很安全的加密方法,但能够保护脚本不被一般的用户浏览和拷贝。
5. 包含脚本文件的一种新方式
除了使用<!--#include-->元素使服务器端的IIS包含脚本代码文件, JSP 3.0也能够“包含”其自己。< SCRIPT >元素与RUN AT =“SERVER”和SRC =“p a t h _ a n d _ f i l e n a m e”属性共同使用,来包含基于服务器的脚本代码文件。相对的物理路径或虚拟路径也可以用在SRC属性中:
6. Server Scriptlets
JSP 3.0支持一种强有力的新的脚本技术,称之为Server Scriptlets。这些是驻留在服务器上的XML格式的文本文件,可以像一般的COM对象(即Active服务器组件)为A S P所用。这样可以把We b应用程序的业务逻辑脚本过程更容易地实现为一个可重用的组件。
7. 增强性能的Active服务器组件
JSP中的许多Active服务器组件得到了改进,能够提供更好的性能和附加的功能,一个例子就是新的Browser Capabilities组件。除此之外,还有一些新的组件。例如, XML分析器使与XML更加紧密的集成通过Windows 2000所提供的新的ADO 2.5版),这为以XML格式存贮和获取数据,提供了新的机会。
8. 性能
为改善JSP和IIS的性能和可扩展性,新版本做了大量的工作。这包含JSP中的自我调整特征,它可以检测阻塞情况并自动增加可用线程的数量。当请求在执行中受到外部资源的阻塞时, JSP能够检测出来,并为同时执行附加请求和继续正常处理提供更多的线程。但是,假如CPU变得超负荷, JSP会减小可用线程的数量,以便当过多的非阻塞请求同时执行时,将线程切换次数最小化。
互联网驾校预约系统的基本界面结构清晰,操作明了,很容易上手。下面说明操作方式及实现原理。
3.2.1系统首页界面
此界面是本系统运行的第一个界面,布局非常清爽,上面一个BANNER,然后一排导航栏,左边至上而下分别是用户登陆,系统公告和友情连接,右边分别是站内新闻,志愿者风彩,最新注册用户和最新活动通知,中间还有一个流行的JS脚本的变幻图。
3.2.2站内新闻列表模块
该模块主要是把系统数据库中的所有新闻信息以列表的形式列出,让人可以直观地看出现有哪些新闻消息。在列表中显示的有标题和时间,单击标题可以跳到新闻内容详细页面。
实现本模块的主要代码如下所示:
<%
String lb=new String(request.getParameter("lb").getBytes("8859_1"));
String keyword=new String(request.getParameter("keyword").getBytes("8859_1"));
if (lb==null)
{
lb="站内新闻";
}
%>
<%
String sql="";
sql="select id,biaoti,addtime from xinwentongzhi where leibie='"+lb+"' ";
if(keyword.equals("") || keyword==null)
{}
else
{
sql=sql+" and biaoti like '%"+keyword+"%'";
}
sql=sql+" order by id desc";
ResultSet RS_result=connDbBean.executeQuery(sql);
String id="";
String biaoti="";String addtime="";
int i=0;
while(RS_result.next()){
i=i+1;
id=RS_result.getString("id");
biaoti=RS_result.getString("biaoti");addtime=RS_result.getString("addtime");
%>
<tr>
<td height="25" align="left">★<A href="gg_detail.jsp?id=<%=id %>" class="b"><%=biaoti %></A></td>
<td align="left"><%=addtime%></td>
</tr>
<tr>
<td height="3" colspan="2" align="center" background="images/xuxian.gif"></td>
</tr>
<%
}
%>
3.2.3站内新闻详细模块
该模块就是从上一模块中单击新闻标题而来到的内容详细页,从上图中可以看出,界面下方有三个按钮,一是“我要评论”,一是“查看已有评论”,还有一个是返回按钮。
实现本模块的主要代码如下所示:
<title>互联网驾校预约系统</title>
<style type="text/css">
<!--
.STYLE2 {color: #FFFFFF}
.STYLE4 {color: #FFFFFF; font-weight: bold; }
.STYLE6 {color: #198A95; font-weight: bold; }
.STYLE5 { color: #72AC27;
font-size: 26pt;
}
-->
</style>
<%
String id=request.getParameter("id");
%>
<link href="qtimages/StyleSheet.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="900" height="964" border="0" align="center" cellpadding="0" cellspacing="0" id="__01">
<tr>
<td>
<%@ include file="qttop.jsp"%></td>
</tr>
<tr>
<td height="541"><table id="__01" width="900" height="532" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="532" valign="top"><%@ include file="left.jsp" %></td>
<td width="4" background="qtimages/img_02_02.gif"> </td>
<td valign="top"><table id="__01" width="676" height="506" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="193" valign="top"><table id="__01" width="676" height="193" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="31" background="qtimages/img_02_03_01_01.gif"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="19%" height="16" align="center"><span class="STYLE4">站内新闻</span></td>
<td width="66%"> </td>
<td width="15%"><a href="lyblist.jsp"></a></td>
</tr>
</table></td>
</tr>
<tr>
3.2.4用户注册模块
该模块主要是让游客用户可以通过本模块注册成为系统的普通用户,它包括了用户名,密码,姓名,性别,出生年月,电话,邮箱,QQ,身份证和备注信息。其中带*的为必填项,如果没有填写系统会给出相应提示,性别采用了下拉选择框,出生年月采用了一个自制日期控件,当用户单击该文本框时,系统会自动弹出日期控件以供用户选择,这样即方便了操作,同时又可以保证不会因格式问题而出错。
实现本模块的主要代码如下所示:
<td width="14%" align="center"><span class="STYLE6">用户注册</span></td>
<td width="86%"> </td>
</tr>
</table></td>
</tr>
<tr>
<td width="676" height="101" background="qtimages/img_02_03_02_02.gif"><table width="89%" border="1" align="center" cellpadding="3" cellspacing="1" bordercolor="#00FFFF" style="border-collapse:collapse">
<form name="form1" id="form1" method="post" action="yonghuzhuce_add_post.jsp">
<tr>
<td>用户名:</td>
<td><input name='yonghuming' type='text' id='yonghuming' value='' />
*</td>
</tr>
<tr>
<td>密码:</td>
<td><input name='mima' type='password' id='mima' value='' />
*</td>
</tr>
<tr>
<td>角色:</td>
<td><select name="juese" id="juese">
<option value="普通用户">普通用户</option>
</select>
</td>
</tr>
<tr>
<td>性别:</td>
<td><input name="xingbie" type="radio" value="男" checked>
男
<input name="xingbie" type="radio" value="女">
女</td>
</tr>
<tr>
<td>电话:</td>
<td><input name='dianhua' type='text' id='dianhua' value='' size="30" /></td>
</tr>
<tr>
<td>QQ:</td>
<td><input name='QQ' type='text' id='QQ' value='' /></td>
</tr>
<tr>
<td>身份证:</td>
<td><input name='shenfenzheng' type='text' id='shenfenzheng' value='' size="30" /></td>
</tr>
<tr>
<td>地址:</td>
<td><input name='dizhi' type='text' id='dizhi' value='' size="50" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="提交" />
<input type="reset" name="Submit2" value="重置" /></td>
</tr></form>
</table></td>
</tr>
<tr>
<td><img src="qtimages/img_02_03_02_03.gif" width="676" height="1" alt=""></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td><table id="__01" width="900" height="186" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><img src="qtimages/img_03_01.gif" width="900" height="69" alt=""></td>
</tr>
<tr>
<td><img src="qtimages/img_03_02.gif" width="900" height="24" alt=""></td>
</tr>
<tr>
<td width="900" height="93" align="center" background="qtimages/img_03_03.gif"><p>版权所有:xxxxxxxxx</p>
<p>开发日期:dddddddddddddd</p>
<p>指导老师:xxxxxxxxxxxxxxxxxxxxxxxx</p></td>
</tr>
3.2.5留言板模块
该模块是一个让用户留言的模块,它包括昵称,头像,QQ,邮箱,电话和留言内容。
该模块实现了用户与管员之间的沟通!其实现方法与用户注册相似,不再赘述。
3.2.6管理员登陆模块
该模块界面最简单,只有一个按钮和两个文本框,但其实现难度却比较可观。
当用户输入了用户名和密码后,系统首先去验证其用户名和密码是否匹配,如果正常匹配,还要将其用户名记录下来,并自动识别其权限,以便登陆后其他操作。
后台的其他任何操作均要在此模块之后,它是一个关卡,安全性要求最高!
实现本模块的主要代码如下所示:
String uid=request.getParameter("username");
String pwd=request.getParameter("pwd");
String cx=new String(request.getParameter("cx").getBytes("8859_1"));
String sql="";
if(cx.equals("普通用户"))
{
sql="select * from [yonghuxinxi] where yonghuming='"+uid+"' and mima='"+pwd+"'";
}
else
{
sql="select * from [allusers] where username='"+uid+"' and pwd='"+pwd+"'";
}
ResultSet RS_result=connDbBean.executeQuery(sql);
if(!RS_result.next())
{
out.print("<script>alert('你输入的用户不存在或密码错误,请重新登录!');window.history.go(-1);</script>");
}
else{
session.setAttribute("username",uid);
if(cx.equals("普通用户"))
{
session.setAttribute("cx","普通用户");
}
else
{
session.setAttribute("cx",RS_result.getString("cx"));
}
response.sendRedirect("main.jsp");
}
RS_result.close();
3.2.7后台主界面
该模块是管理员登陆后看到的第一个界面,也是后台的主界面,它由三大块组成,上中下三块,其中中间一块又分为左右两个小块,左边是一个菜单列表,右边是主页面,单击左边菜单栏目时,相应的页面会自动显示在右面,这样操作起来非常方便。
3.2.8修改密码模块
该模块是最常用的一个模块,一般普通的系统都具有本模块的功能。
实现本模块的主要代码如下所示:
String ymm=request.getParameter("ymm");
String xmm1=request.getParameter("xmm1");
ResultSet RS_result=connDbBean.executeQuery("select * from [allusers] where username='"+request.getSession().getAttribute("username")+"'");
if(!RS_result.next())
{
out.print("<script>alert('系统故障,请勿越权操作!');window.history.go(-1);</script>");
}
else{
String pwd=RS_result.getString("pwd");
if(pwd.equals(ymm))
{
String sql="update allusers set pwd='"+xmm1+"' where username='"+request.getSession().getAttribute("username")+"'";
connDbBean.executeUpdate(sql);
out.print("<script>alert('修改成功!!');window.history.go(-1);</script>");
}
else
{
out.print("<script>alert('对不起,您的原密码不正确,请重试!');window.history.go(-1);</script>");
}
}
3.2.9新闻添加模块
该模块主要是让管理员可以添加系统的新闻信息,包括标题,内容和添加人三个可见字段,和一个类别隐藏字段。
该模块的难点是在内容字段用了一个界面类似WORD的功能非常强大的编辑器,它不仅可以输入文字信息,还可以输入图片,表格,上传附件,FLASH甚至影片等其他数据信息。
实现本模块的主要代码如下所示:
String biaoti=request.getParameter("biaoti");
String leibie=request.getParameter("leibie");
String neirong=request.getParameter("content");
String tianjiaren=request.getParameter("tianjiaren");
String sql="insert into xinwentongzhi(biaoti,leibie,neirong,tianjiaren) values('"+biaoti+"','"+leibie+"','"+neirong+"','"+tianjiaren+"') ";
connDbBean.executeUpdate(sql);
out.print("<script>alert('添加成功!!');
location.href='xinwentongzhi_add.jsp?lb="+leibie+"';</script>");
3.2.10注册用户查询模块
该模块主要是将前台注册的所有用户信息以列表的形式列出,供管理员可以一目了然地看出本系统现有的所有用户信息,且包括了查询,修改,删除,统计和打印的功能。
其中查询包括了用户名和姓名两个查询字段,该两个字段均为模糊查询,即只需要输入字段中包含的若干字符即可,两个条件之间的关系为AND关系,如果两个条件都为空,则表示查询所有数据。
实现本模块的主要代码如下所示:
{
out.print("<script>alert('该用户名已经存在,请换其他用户名!');window.history.go(-1);</script>");
}
else{
String sql="insert into yonghuzhuce(juese,yonghuming,mima,xingbie,dianhua,QQ,shenfenzheng,dizhi) values('"+juese+"','"+yonghuming+"','"+mima+"','"+xingbie+"','"+dianhua+"','"+QQ+"','"+shenfenzheng+"','"+dizhi+"') ";
connDbBean.executeUpdate(sql);
out.print("<script>alert('操作成功!!');location.href='index.jsp';</script>");
}
RS_result.close();
四、开发环境简介
4.1 B/S体系结构
本系统所面向的对象是超市仓储中心内部用户,系统要突出时代感,时尚感。因此,将要采用比较流行的B/S三层结构。
图2-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 Dreamweave
Dreamweaver是美国MACROMEDIA公司开发的集网页制作和网站管理于一身的所见即所得网页编辑器, 是一种可视化网页制作工具,利用它可以轻松地制作出跨越平台限制和跨越浏览器限制的动态网页。
Dreamweaver 可以开发HTML、XHTML、ColdFusion、JSP、JAVA、JSP或PHP网站。通过平面设计工具以及代码提示、标签编辑器、可扩展色彩代码、标签选择器、片段和代码检验这类编码特性来实现对代码和设计的管理。新集成的工作空间可以与Macromedia Flash MX和Fireworks MX共享,其中包括了标示签的文档窗口、可放到dock中的画板组、可定制的工具条和集成的文件浏览。Dreamweaver 还包括有预建的布局和代码,其中有网站结构、表格、可访问的模板以及为客户端交互应用而提供的JavaScript。
为翻新现有网站以及创建下一代应用程序,Dreamweaver 还支持新标准和新的网页技术,带有对XML、网页服务和增强可访问性的支持。Dreamweaver MX为新的ColdFusion MX特性提供全套的支持,包括增强的代码编辑和开发功能、集成的调试功能、可视化布局功能和照片打印功能。
4.3 SQL Server
SQL Server 是一个具备完全 Web 支持的数据库产品,提供了对可扩展标记语言 (XML) 的核心支持以及在 Internet 上和防火墙外进行查询的能力,提供了以 Web 标准为基础的扩展数据库编程功能。丰富的 XML 和 Internet 标准支持允许使用内置的存储过程以 XML 格式轻松存储和检索数据。
SQL Server 提供强大的开发工具和各类开发特性,在大大提高开发效率的同时,进一步拓展应用空间,带来新的商业应用机遇。例如,XML数据库与Web Service的支持将使您的应用实现Internet数据互联,.Net集成极大的扩展了开发空间,异构数据集成、Service Broker使您的数据和其它应用无缝集成,各种新数据类型和T-SQL扩展带来了诸多灵活性。C#、VB.Net、XQuery、XMLA、ADO.Net 2.0、SMO、AMO等都将成为SQL Server数据平台上开发数据相关应用的有力工具。
4.4 HTML(Hyper Text Markup Language)
HTML的英文全称是"Hypertext Markup Language",中文译为“超文本标记语言”。“超文本”就是指页面内可以包含图片,联接,甚至音乐,程序等非文字的元素。在几年前作为SGML的一个子集开发的。
一个HTML文件中包含了所有将显示在网页上的文字信息,其中也包括对浏览器的一些指示,如哪些文字应放置在何处,显示模式是什么样的等。如果你还有一些图片、动画、声音或是任何其它形式的资源,HTML文件也会告诉浏览器到哪里去查找这些资源,以及这些资源将放置在网页的什么位置。浏览的网页就是由HTML语言编写出来的。虽然HTML是一种语言,但HTML不是程序语言,如 C++ 和 Java 之类,它只是标示语言,你只要明白了各种标记的用法便算学会了HTML.HTML 的格式非常简单,只是由文字及标记组合而成,因此任何文本编辑器都可以制作HTML页面。
在编辑器中输入html代码即可完成对网页的设计,如果在其中加入VB,JAVA等脚本文件以及数据库连接有关的语句指令,便可对已知数据进行查询,从而生成动态网页的一部分。
4.5 JSP
JSP是Java Server Pages的缩写,是由Sun公司倡导、许多公司参与,于1999年推出的一种动态网页技术标准。JSP是基于Java Servlet以及整个Java体系的Web开发技术,利用这一技术可以建立安全、跨平台的先进动态网站。JSP的工作原理是:首先,通过客户端的浏览器,以超文本(HTML)形式通过表单(FORM)向Web服务器提出请求。接着,服务器得到客户端的请求后,由Web服务器上的JSP引擎把JSP代码、相关组件、Java脚本以及HTML代码,转化为Servlet代码。然后,由JSP引擎调用Web服务器端的Java编译器对Servlet代码进行编译。最后,由Java虚拟机执行编译文件,并八客户端的请求结果以标准HTML页面的形式返回。本系统是在单机Windows XP的环境下开发的,本机既安装了浏览器,又安装了tomcat4.1服务器,这样计算机同时扮演服务器端与客户端的角色,仿真成网络环境,使这个系统可以方便的开发。系统主要运用JSP和JavaBean来开发动态网页,运用HTML来设计静态网页,还运用了Microsoft Visual Studio .NET 2003来设计网页的美观性。本系统采用的是Microsoft SQL Server 2000数据库,主要运用SQL语句访问它。JSP通过Java语言的JDBC技术与数据库相连,只要数据库有JDBC的驱动程序就可与之相连。
在本设计中,JSP页面采用的大部分脚本语言是JavaScript,JavaScript是一种基于对象的脚本语言,使用它可以开发Internet客户端的应用程序。JavaScript在HTML页面中以语句形式出现,并且可以执行相应的操作。其具有如下特点:
JavaScript是一种脚本语言。
JavaScript是基于对象的语言。
JavaScript是事件驱动的语言。
当你在Web主页中进行某种操作时,就产生了一个“事件”。事件几乎可以是任何事情:敲击一个按钮、拖动鼠标等均可视为事件。JavaScript是事件驱动的,当事件发生时,它可对之作出响应。具体如何响应某个事件取决于你的事件响应处理程序。
JavaScript是安全的语言,JavaScript被设计为通过浏览器来处理并显示信息,但它不能修改其它文件中的内容。也就是说,它不能将数据存储在Web服务器或用户的计算机上,更不能对用户文件进行修改或删除操作。
五、系统测试
系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方,从而提出更加完善的方案.。它的的任务是尽可能彻底地检查出程序中的错误,提高软件系统的可靠性,其目的是检验系统"做得怎样?"。这阶段又可分为三个步骤:模块测试,测试每个模块的程序是否有错误;组装测试,测试模块之间的接口是否正确;确认测试,测试整个软件系统是否满足用户功能和性能的要求。该阶段结束应交付测试报告,说明测试数据的选择,测试用例以及测试结果是否符合预期结果。测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。
系统测试的对象不仅仅包括需要测试的产品系统的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。因此,必须将系统中的软件与各种依赖的资源结合起来,在系统实际运行环境下来进行测试
5.1系统测试的目的
系统测试不是为了表明程序是正确的,因为如果是这样,就会设计一些不易暴露错误的测试方案,也不会主动去检测、排除程序中可能存在的一些隐患。对于测试目的,G.J.Myers给除了以下的观点:
(1)测试是为了发现程序中的错误而执行程序的过程。
(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。
(3)成功的测试是发现了至今为止尚未发现的错误的测试。
5.2系统测试的方法
5.2.1 黑盒测试法
黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
黑盒测试法注重于测试软件的功能需求,主要试图发现下列几类错误。
功能不正确或遗漏;
界面错误;
数据库访问错误;
性能错误;
初始化和终止错误等。
从理论上讲,黑盒测试只有采用穷举输入测试,把所有可能的输入都作为测试情况考虑,才能查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但可能的输入进行测试。这样看来,完全测试是不可能的,所以我们要进行有针对性的测试,通过制定测试案例指导测试的实施,保证软件测试有组织、按步骤,以及有计划地进行。黑盒测试行为必须能够加以量化,才能真正保证软件质量,而测试用例就是将测试行为具体量化的方法之一。具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等。
等价类划分的办法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。该方法是一种重要的,常用的黑盒测试用例设计方法。
5.2.2 白盒测试
白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。
这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。
采用什么方法对软件进行测试呢?常用的软件测试方法有两大类:静态测试方法和动态测试方法。其中软件的静态测试不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对软件进行分析和测试;而软件的动态测试是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,而达到发现程序错误的过程。
白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。
白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。
六种覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖发现错误的能力呈由弱至强的变化。语句覆盖每条语句至少执行一次。判定覆盖每个判定的每个分支至少执行一次。条件覆盖每个判定的每个条件应取到各种可能的值。判定/条件覆盖同时满足判定覆盖条件覆盖。条件组合覆盖每个判定中各条件的每一种组合至少出现一次。路径覆盖使程序中每一条可能的路径至少执行一次。
"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。
白盒测试目前主要用在具有高可靠性要求的软件领域,例如:军工软件、航天航空软件、工业控制软件等等。白盒测试工具在选购时应当主要是对开发语言的支持、代码覆盖的深度、嵌入式软件的测试、测试的可视化等。
对开发语言的支持:白盒测试工具是对源代码进行的测试,测试的主要内容包括词法分析与语法分析、静态错误分析、动态检测等。但是对于不同的开发语言,测试工具实现的方式和内容差别是较大的。目前测试工具主要支持的开发语言包括:标准C、C++、Visual C++、Java、Visual J++等。
代码的覆盖深度:从覆盖源程序语句的详尽程度分析,逻辑覆盖标准包括以下不同的覆盖标准:语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖和修正判定条件覆盖。
不同的测试工具对于代码的覆盖能力也是不同的,通常能够支持修正条件判定覆盖的测试工具价格是极其昂贵的。
嵌入式软件的测试:对于嵌入式软件的测试,我们还需要一方面进一步考虑测试工具对于嵌入式操作系统的支持能力,例如DOS、Vxworks、Neculeus、Linux和Windows CE等;另一方面还需要考虑测试工具对于硬件平台的支持能力,包括是否支持所有64/32/16位CPU 和 MCU,是否可以支持 PCI/VME/CPCI 总线。
测试的可视化:白盒测试是工作量巨大并且枯燥的工作,可视化的设计对于测试来说是十分重要的。在选购白盒测试工具时,应当考虑该款测试工具的可视化是否良好,例如:测试过程中是否可以显示覆盖率的函数分布图和上升趋势图,是否使用不同的颜色区分已执行和未执行的代码段显示分配内存情况实时图表等,这些对于测试效率和测试质量的提高是具有很大的作用的。
结 论
1) 系统的特点
本系统是一个互联网驾校预约系统,采用JSP+SQL的模式来订制的一个小型电子政务平台。本系统从功能上来说,比较完备。系统以Web界面与用户交互,为用户提供信息并接受其操作,同时通过数据库管理系统来存储信息数据。系统实现了对信息数据的浏览、查询、编辑和管理等基本数据库操作,系统采用了模块化设计方法,根据用户的需求及程序的应用与维护的易用性,将各个部分置于不同的模块当中,方便了程序的扩展与维护,同时建立了程序功能复用的基础。
2) 系统的不足和改进
本系统基本上满足了驾校预约系统方面的需要。实现了注册用户和管理员的基本功能,方便了注册用户和管理员在线进行政务事务交流。在界面上力求做到简洁、在操作方面尽量避免由于用户操作不当带来系统的出错现象。但由于时间仓促,本系统还存在一些不足之处,界面不够美观,需要进一步修饰和美化;对数据库操作的性能有待进一步优化,虽然本系统优化了不少,但要达到理想状态还有一段距离,如部分功能程序代码过长,如果后台数据库过大将会影响运行速度;部分数据库表的设计存在一定的冗余,有待进一步优化。根据系统的不足,继续改进和完善本系统。提高审美观点,可使用photoshop、fireworks等图片处理工具修饰图片,力求给用户提供美观友好的界面;简化程序代码,可使不同界面之间能共享一些方法、函数和变量,对于相同的功能模块可生成程序包供其它界面引用,这样就会提高系统的运行速度;使用数据库连接池技术提高数据库操作的性能;数据库的关系模式可以进一步规范化,减少冗余现象。
3) 设计收获与心得
毕业设计是最能体现我们所学知识的时候,是对我们大学四年所学理论知识的一次巩固和提高。设计本系统的过程不仅是对我学过的知识的一次应用,更是对我综合处理问题、解决实际问题能力的培养和锻炼。通过本次毕业设计使我对系统开发有了深入的了解,我的编程能力也有了较大的提高。我在设计过程中也遇到了很多困难,但是通过指导老师和同学的帮助以及自己的努力,最终还是顺利地完成了毕业设计。
虽然,毕业设计只有短暂的几个月,但却使我充分认识到自身还存在很多不足的地方,还需要不断的努力来充实自己、完善自己,只有这样才能学无止境,以求得更大的发展。
在毕业论文结束,毕业设计完成之际,首先向在这半年中给予我帮助的毕业设计指导老师xxxx老师致以深深的谢意。xxx老师在教学任务繁忙的情况下,抽出时间帮助纠正我在设计当中出现的问题,并耐心地为我的论文作学校正。他对我的支持,不仅是技术上的,还有心理上的鼓励和督促,他的指导和建议使我受益非浅,没有他的帮助和指导,就不会有我今天的成果。
感谢我的父母在我做毕业设计这段期间给予我很大的精神支持。
最后向关心和支持我学习的所有领导、同学和朋友们表示真挚的谢意!感谢他们对我的关心、关注和支持!
需要源码 其他的定制服务 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者
原文地址:https://blog.csdn.net/qq_41221322/article/details/140516268
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!