基于JSP技术的Web GIS

时间:2022-06-28 02:59:44

基于JSP技术的Web GIS

【摘 要】地理信息系统的发展需要走开放式的道路,web gis的发展更应根据实际情况采用当前的主流技术。比较了web gis的各种实现技术,研究如何用jsp技术来实现web gis。

【关键词】jsp web gis java javabean 数据库 服务器端 客户端

1 web gis概述

web gis是利用互联网技术,完善和扩展传统的地理信息系统功能的一门新技术。通过网络,gis的功能得以扩展,真正成为一种大众使用的工具。用户可以浏览web gis站点中的空间数据、制作专题地图,进行各种空间检索和分析。与传统的gis相比,web gis体系结构发生了根本性的转变,它基于浏览器/服务器体系(浏览器、中间件服务器、数据库服务器),三层客户机/服务器模型(用户界面层、中间件服务器、gis数据层),以及web环境,采用tcp/ip通信协议来扩大空间数据共享范围。采用客户端/服务器多层体系结构提高系统的安全性,可重用性。在应用层采用http议增强gis的开放性。

web gis的发展为gis数据与信息的获取、、共享与操作开辟了广阔的前景,和传统的gis相比,具有以下优点:

(1)更广泛的访问范围。

(2)平立。

(3)系统成本降低。

(4)操作简单。

2 web gis的实现技术

随着网络技术的发展,出现了多种实现web gis方法,如cgi,isapi,java,asp等。

2.1基于cgi和web api的被动式web gis

cgi(common gateway interface)是最早用来建立动态web资源的技术,它是外部应用程序和web服务器之间的接口标准,可让浏览器与服务器之间产生互动的关系。基于cgi技术的web gis系统在用户发出一个请求时,服务器把请求通过cgi转发给后端gis应用程序,应用程序生成的结果又通过服务器传回客户端。基于cgi技术实现web gis的优势在于服务器软件之间的可移植性,缺陷是其浏览器的请求与生成的进程一一对应,它的进程通常都不在常驻系统内,只要有客户需求送置,服务器就要建立一个新的进程,致使多个用户同时访问时,系统资源占用过多,执行效率低。

web api是建立在cgi技术之上的另一类应用程序接口,实际应用中主要有microsoft的isapi。它用动态链接库取代cgi程序,不会在系统中产生新的进程,资源共用,因而响应速度比cgi要高。但基于web api的web gis与服务器联系较紧,用户发出的所有请求都在服务器端完成,客户端仅起了一个图形终端的作用,对服务器性能要求较高,程序移植难度大,也容易使服务器瘫痪,并且其没有统一标准,通用性差。

2.2基于asp和java的主动式webgis

asp是微软公司推出的动态网页技术,可以在html程序码中内嵌vbscript或javascript,服务器端还需安装适当的编译程序引擎。客户端请求asp网页时,asp文件由服务器端的asp engine解释执行,源程序不会传到浏览器,但它的安全性仍不是很好,必需随时注意微软公司的新补丁,以便更新系统。基于asp的web gis还必须和iis(internet information server),activex紧密相连,ado(activex data object)作为数据库访问控件,用它使客户端的程序通过bc和ole db来操纵gis数据。并且asp执行环境仅限于microsoft internet information server,microsoft site server和personal web server,缺乏跨平台的特性。另一方面,每当客户端请求asp网页时,服务器端都必须重新编译一次,在执行效率上略显不足。

java语言正是针对internet应用而开发的编程语言,也是一种面向对象、支持多线程、体系结构独立的解释型动态语言,具有高度的安全性、可移植性和代码重用性,它具有“一次编译,处处运行”的效果,支持web计算模式,能实现web的数据分布和操作分布。java的特殊性质使它成为开发web gis的主流技术。它利用url对象可以分布式访问具有url的数据对象,通过在客户端下载java applet小程序完成gis功能,实现对分布式数据的操作,但在实现大型gis任务时能力受限制。

3 基于jsp技术实现web gis

3.1jsp简介

jsp(java server pages)是由sun微系统公司于1999年6月推出的一种建构在servlet技术之上的web技术,jsp将servlet中的html代码脱离了出来,从而可以加速web应用开发和页面维护。在这种技术中你可以将java代码嵌入到html文件,服务器将自动为页面创建一个servlet。利用jsp可以建立跨平台的、更加先进和安全的动态网站。

jsp的最大特点是将内容的生成与显示分离。使用jsp技术,web页面开发人员可以使用jsp标记或小脚本来生成web页面上的动态内容。生成内容的逻辑被封装在jsp标记和javabean组件中并运行于服务器端,由jsp引擎解释执行。

在jsp中大量的java程序代码可以封装于与平台无关的javabean中,而只留下极少的标记用于调用bean,这样就避免了代码的混乱性。除了javabean外,enterprise java bean (ejb)和remote methodinvocation (rmi)等对象都可以很容易在jsp中访问到。

jsp使用jdbc(java database connectivity)/jdo技术访问数据库,对于只有odbc的数据库,使用sun公司的jdbc-odbc桥程序来连接访问。服务器端生成的结果以html或xml页面的形式返回,保护了代码的安全性。

jsp属于服务器端程序设计语言,基于web层(三层)客户机/服务器应用模型,将用户界面层、事物逻辑层和数据层分开来,利用java的跨平台性,具有一次编写,处处运行的优点。以服务器端调用jsp的方式来分,它的基本模型一般情况下可分两种:一是服务器请求jsp,由jsp调用可重用的javabean组件来执行任务,譬如访问数据库、设置属性等。另一种是不用javabean,服务器只请求一个servlet,它生成响应所要包含的动态内容,再激活一个jsp用来表示生成的内容。

3.2基于jsp的web gis

基于jsp的web gis由于与数据库联系较紧,一般采用javabean组件技术。jsp用java组件javabean执行确定任务和封装对象数据,jsp与javabean的关系就像asp与com的关系,com对象常用于帮助从asp网页中分离出逻辑或计算的代码,可以在任何允许标准对象模型的语言中引用,而javabean仅限于java程序设计语言,比com更易于开发,只要通晓java,就很容易掌握javabean的结构。在asp中使用com对象必须在服务器上注册,对象改变时,服务器需重新启动,而javabean不需在服务器上注册,对象改变时,只需重新启动对象即可。

用jsp技术实现的web gis, jsp应用程序置于web服务器端,当用户请求jsp网页时,jsp程序将自动送给jsp引擎(jsp engine)处理,它将程序中的java代码分离出来,生成servlet,若无语法错误,则编译成class文件后,载入java vm(java virtual machine)执行(这是jsp程序的惟一一次执行)。当客户端有请求时,jspengine会同时为每一个请求产生一个请求对象(request)和回应对象(response)传入servlet的_jspservice ( )方法,jsp调用封装了访问gis数据库、撷取和提供内部属的javabean,将请求参数传给bean组件,由bean动态计算处理结果,jsp获取相关信息后传回html形式表现结果。这样客户端看到的只是转换过的html文件,有效地隐藏了jsp源代码,保证了安全性,由于jsp不需要每次请求都编译,速度有所提高。

4 实际应用

web gis用jsp从oracle数据库中读取数据与用户进行交互,在客户端下载java applet,实现地图的、比例放缩、信息查询功能。系统采用浏览器/服务器结构模式,由浏览器发出请求给web服务器(apache/tomcat等等),web服务器将请求送给相应的由jsp中的java代码生成的servlet,servlet负责激活设定了相关属性的javabean,由javabean与数据库相连接,在服务器端进行数据的各种查询、分析、检索等操作,这样每次jsp询问javabean组件属性时,javabean动态处理并将结果传给浏览器,由浏览器显示结果给用户。

5 结束语

本文对jsp技术与web gis其他实现技术进行了介绍,由于jsp使用java作为脚本语言,具有跨平台性,jsp与javabean技术相结合,为web gis的开发带来了极大的便利。实践证明,使用jsp技术开发web gis优越于以前的cgi,asp等等技术。相信在不久的将来,jsp技术会日益成熟,并将有力推动web gis的发展。

参考文献:

[1]陈俊杰,陈灿章.web gis技术及其实现方法[j].太原理工大学学报,2000,31(4):394-396.

[2]周炎坤,李满春.web gis开发方法比较研究[j].计算机应用研究.

[3]戚铭尧,池天河,霍亮.web gis的企业级解决方案探讨[c].华南师范大学学报(自然科学版),2001,7:50-55.

上一篇:电子政务中的PKI体系研究及应用 下一篇:基于模糊理论的图像分割算法研究(一)