第1章Web数据库技术概述网络应用结构模型Web数据库技术JavaWeb技术的发展历史网络应用结构模型联网的主要目的是实现资源共享和计算机之间的通信。资源包括硬件资源、软件资源、数据资源和通信信道资源。其中数据资源共享是Internet的主要功能之一。数据资源共享的方式主要有:⒈文件服务器模型和域模型⑴文件服务器模型:其代表是NovellNetWare局域网。FSWSWSWS…文件服务器(FS):提供高速存取的大容量硬盘,保存网络中其它工作站(WS)共享的文件和目录,包括各种应用程序和数据库。用户根据所拥有的权限使用程序和访问数据库。不过,采用这种方式访问数据库通信量大,效率较低。⑵工作组模型:其代表是Windows95/98/NT。由系统管理员创建一个用户工作组,组中成员以对等方式工作。工作组中的每一台计算机既可作为服务器,又可作为工作站。每台计算机具有自己的帐户和管理。这种网络的管理比较松散,安全性较差。⑶域模型:其代表是WindowsNTServer/Windows2000Server。除了提供工作组模型外,还提供了域模型的网络使用方式。可以将一个单位的计算机连成一个域(Domain),每个域中的用户再分成若干个工作组。一个域中可以有若干个服务器和工作站,其中至少有一台服务器为域服务器,负责域的集中管理。域模型是一种安全、高效的网络使用模型。⒉客户机/服务器模式⑴C/S模式早期的“主机+终端”模式中,所有处理任务都由主机承担。后来的文件服务器模式,所有处理任务几乎都由工作站承担,文件服务器只起共享磁盘的作用。为了充分调动服务器和工作站双方的处理能力,人们提出了客户机/服务器(Client/Server,简称C/S)模式。ClientServer查询结果C/S模式把处理分配给客户机和服务器共同承担。优点:①发挥双方的处理能力;②减少网上信息传输量;③服务器可高效、完全地处理数据库,客户机可处理GUI界面和本地I/O;④提供了开放、分布式计算环境。⑵三层C/S模式“客户机-功能服务器-数据库服务器”模式客户机功能服务器数据库服务器客户机:存放用户界面层(表示层)软件,负责用户与应用层之间的对话。功能服务器:存放业务逻辑层(功能层)软件,响应客户机请求,完成业务处理或复杂计算。如根据客户机要求,向数据库服务器发送SQL命令。数据库服务器:存放数据库服务层(数据层)软件,负责执行功能层送来的SQL命令,并通过功能服务器向客户机返回处理结果。⑶B/S模式B/S模式是把Web技术和数据库技术结合起来的技术,实现开发环境和应用环境的分离,用户端用相对统一的浏览器代替客户软件,实现跨平台的应用和多媒体服务。基于B/S模式的信息系统通常采用:“浏览器→Web服务器→数据库服务器”三层结构。浏览器Web服务器数据库服务器HTTP请求数据请求返回结果返回浏览器⑷B/S结构与C/S结构的对比Web数据库技术⒈有关Web的基本知识⑴什么是Web?WorldWideWeb(简称Web或,万维网)⑵Web的三个基本要素:统一的资源命名方案,如URI访问资源的方式,即协议,如HTTP协议资源之间自由访问的方法,即超文本,如HTML语言⑶Web技术经历了三个发展阶段第一代:提供对静态文档(信息)的管理和访问。第二代:与数据库系统相结合,提供对动态文档(信息)的访问和显示。第三代:除动态文档生成和访问之外,还提供了基于Web的联机事务处理能力,实现基于Web的服务。Web服务是程序设计领域中的一项新技术。其优点是:在完全不同的平台之间具有互操作性(interoperability),通过Internet实现不同应用程序之间的远程过程调用(RPC)。它是一种不管应用程序使用哪种操作系统,不管用什么程序语言,都能在分布式程序之间交换信息的技术。其核心技术是:XML、SOAP(简单对象访问协议)、WSDL(Web服务描述语言)和UDDI(统一描述、发现和集成)。⑷典型Web应用程序的处理过程Web浏览器发送请求(HTTPGET/POST)执行服务器端程序(脚本程序,如CGI)将结果返回给Web浏览器其中,返回结果可以是:HTML、文本、XML、图像或音频、视频流等⒉Web数据库Internet和Web技术的发展迫切需要实现Web与数据库的互连,即把数据库技术引入到Web系统中,使用户在Web浏览器上方便地检索和浏览数据库的内容。因此,将Web技术和数据库技术相结合,开发动态的Web数据库应用,已成为Web技术研究的热点。通过Web访问数据库的优点:不需要开发数据库前端标准统一(如HTML标准)跨平台支持(为Web服务编写的HTML文档,可被所有平台上的浏览器浏览)3.Web数据库技术Web数据库技术就是在浏览器的网页上,通过Web服务器访问各种数据源的技术。它涉及网络、数据库、HTTP协议、HTML、脚本语言、动态网页开发平台、Web服务器和远程数据访问等多方面的知识。⑴Web数据库访问原理实现Web数据库系统的连接和应用可采取两种途径:在Web服务器端提供中间件(middleware)来连接Web服务器和数据库服务器把应用程序下载到客户端并在客户端直接访问数据库,中间件负责管理Web服务器和数据库服务器之间的通信,并提供应用程序服务。最基本的中间件技术有公共网关接口CGI和应用程序编程接口(API)两种。Web数据库技术采用三层或多层体系结构,前端采用浏览器技术,通过Web服务器及中间件访问数据库。体系结构如下:客户端Web服务器中间件数据库服务器⑵Web数据库访问技术目前,Web数据库访问技术主要分为两大类:公共网关接口(CGI─CommonGatewayInterface)技术和服务器端脚本编程技术。①CGICGI定义了对来自浏览器的信息进行处理的外部程序与Web服务器之间的接口标准。CGI脚本与Web服务器和浏览器的关系如下图所示:Web浏览器CGI脚本其它程序Web服务器请求CGI脚本URL返回结果返回结果运行CGI脚本调用其它程序利用CGI访问Web数据库的例子:CGI编程的最大缺点是效率不高。每当Web服务器接收到一个关联到CGI程序的请求时,就会创建一个新的进程,当服务器接收到大量请求时,会很快耗尽服务器的资源。Web浏览器CGI程序其它程序Web服务器HTML表单HTML结果HTML表单请求HTML结果响应关系数据库SQL查询查询结果②Web应用开发技术(服务器端脚本编程技术):微软的ASP和ASP.NET、开源的PHP技术和Sun公司的JavaWeb技术。ASP(ActiveServerPages):ASP内含于Internet信息服务系统IIS中,提供一个服务器端的脚本环境,站点服务器会自动将所设计的ASP程序代码解释为标准HTML格式的主页内容,并在客户端浏览器上显示出来。ASP编程的脚本语言是VBScript。ASP.NET是ASP技术的升级,其编程语言是C#。PHP(PersonalHomePageTools):PHP是基于标准C语法,可以内嵌于HTML的一种脚本语言。理论上讲,PHP通过插件可以运行在多种平台上,包括微软公司的IIS,但在实际应用上,PHP在Linux的Apache下应用较多。JavaWeb技术:是以Java为中心的一套技术,是本课程学习的重点。JavaWeb与Java的关系JavaWeb应用的主要技术:--JSP(JavaServerPages):JSP是Sun公司推出的新一代站点开发语言,完全解决了目前ASP、PHP的一个通病──脚本级执行。JSP可以在Servlet和JavaBean的支持下,完成功能强大的站点程序。主要用于输入、输出。--Servlet技术:用于系统流程控制。--JavaBean技术:完成核心功能,是一个比较特殊的Java类,编写方法与普通Java类相同。--JDBC技术:Java访问数据库的中间件,完成与数据库的交互。--XML技术:JavaWeb应用中的配置文件采用XML文件的形式,另外JSP页面也可以采用XML文档的形式。③基于Java的Web数据库访问技术基于Java解决方案的特点:服务器端的Java技术是目前最先进和最完善的技术之一。主要有以下特点:平台无关性(编译成字节代码的Java程序可以在各种平台的Java虚拟机上解释执行);效率高(JavaServlet程序以线程方式执行,在第一次装入内存后,以后的请求可在内存中直接执行,加快了速度);访问企业JavaAPI(JavaServlet是Java整体解决方案的一部分,能够访问所有的JavaAPI,利用Java语言提供的所有功能);重用性(Java语言支持面向对象程序设计)。基于Java的Web数据库访问技术JavaApplet:将Java小程序(Applet)从服务器端下载到客户端Web浏览器中执行,通过JDBC驱动程序访问服务器端的数据库。Javaservlet:JavaServlet是运行于Web服务器端的小程序,其作用类似于CGI程序,但比CGI程程序的效率更高。利用JavaServlet可以实现网页中很多交互式效果,在动态网页设计中具有广泛应用。用户通过Web浏览器访问服务器端的Javaservlet程序,Javaservlet负责实现对数据库的访问,并动态生成HTML格式的结果文件,交给Web浏览器显示。HTTP协议Web应用所使用的主要协议;采用请求/应答模式,由客户端发送请求,服务器端响应;无状态,服务器端不会专门为客户端保存信息;请求包括:请求方法(P6表1.1)请求头和请求数据;响应包括:状态码、响应头(P6表1.2)和响应数据。HTML语言是HyperTextMackupLanguage的缩写服务器使用HTML语言对用户响应JavaWeb与Java的关系Java技术的3个版本:–JavaSE,标准版,主要用于桌面应用的开发,同时是其他版本的基础。–JavaEE(J2EE),企业版,主要用于企业级应用的开发。–JavaME,微版本或者称为嵌入式版本,占用内存较少,主要用于嵌入式设备中应用的开发。Java企业级应用架构JavaWeb技术的发展历史Servlet技术JSP技术模型1:JSP+JavaBean模型2:JSP+JavaBean+Servlet框架可视化开发Servlet技术阶段Java技术中最早的Web解决方案,页面中的所有信息需要通过输出语句来生成。HelloWorld!优点:纯Java,执行速度快。缺点:实现输入/输出功能的时候效率比较低。JSP技术阶段JSP技术的目标是快速开发网站,通过在网页中嵌入Java代码实现,在界面中使用%%脚本嵌入用于完成功能的Java代码。优点:可以有效解决Servlet生成页面比较困难的问题。缺点:网站的输入/输出、处理、控制混在一起,不便维护及代码共享。模型1:JSP+JavaBean阶段把业务处理代码从JSP中提取出来,然后形成JavaBean;JSP完成输入、输出和控制功能;需要的时候JSP调用JavaBean的功能。优点:处理功能从JSP页面中分离出来,由JavaBean完成,减少了页面中的代码。缺点:页面中仍然存在用于控制的代码。JSP页面JavaBean模型2:JSP+JavaBean+ServletJSP完成输入输出,JavaBean完成功能,Servlet完成控制。优点:分工明确,JSP代码主要用于输入和输出,便于维护,控制功能使用Servlet。缺点:作为控制器的Servlet存在大量的重复代码。输入界面输出界面ServletJavaBean框架阶段提取Web应用的通用功能形成基础框架,用户的开发基于这个基础框架,然后添加自己应用特有的内容即可。优点:减少重复代码,提高开发效率,便于维护。缺点:对于小型项目,增加了复杂性。中心控制器自定义标签库基本类库框架用户应用用户界面控制器配置文件使用使用业务JavaBean可视化开发