您的位置:首页 > 理论基础 > 计算机网络

GeoServer学习手记(四):Servlet及HTTP派发过程之一

2009-11-02 21:10 309 查看
GeoServer学习手记(四):Servlet及HTTP派发过程之一

粟卫民http://www.gisdev.cn/http://blog.csdn.net/suen/日期:2009-10-29

保留所有版权。如需转载,请联系作者,并在醒目位置注明出处

本来是打算一个工程一个工程来分析介绍,可是在学习的过程中,发现这样的效果并不好,连自己有时候都被一些代码搞得晕头转向,所以转换了思路。先学习和介绍一些关于GeoServer的通用的原理,然后再针对每一个工程进行分析。由于接收输入为任何系统的第一步,因此首先从Servlet及HTTP派发过程开始。GeoServer的HTTP派发也有一个发展变化的过程。

1.6版之前的HTTP派发过程

在GeoServer的1.6版本之前的版本中,还没有使用OWSDispatchingSystem(http://geoserver.org/display/GEOS/GSIP+7+-+OWS+Dispatching+System),因此只存在一次派发,即在web.xml中配置需要派发的servlet类。

WfsDispatcher
org.vfny.geoserver.wfs.servlets.WfsDispatcher

具体可参考:HowaGetFeatureRequestsWorks,(http://geoserver.org/display/GEOSDOC/1+How+a+GetFeature+Request+Works,为了方便起见,转载到下面)

HowaGetFeatureRequestsWorks
ThispagewilldescribehowagetFeature()requestworksinGeoserver.ItwillalsoshowyouhowtosetupEclipseandusethedebuggertorunthroughagetFeature()requestyourself.

TherearethreebodiestoagetFeature()request:
DataSet

Request





TryitinEclipse

Youcanwalkthroughthistutorialusingthedebuggerbyfollowingthesesteps:

MakesureyourEclipseissetuptorunthedebugger.Ifnot,refertothispage

Putabreakpointinthemethod'doGet()'inWfsDispatcher

RunGeoserverinDebugmode:Run->Debug...->selectyourdebugtask->hit'Debug'

Openupyourfavoritewebbrowserandclickthislink

Response




DataSet
AdatasetisthedatathatwillbereadbythegetFeature()request.Itiswhatmakesupourmaps.

HereisanexampleofaPostGISdatabase(orashapefile)withthefollowingdatainit:

tiger_ny=#selectstate_name,state_abbr,persons::int4,families::int4,houshold::int4,male::int4,

female::int4,geometrytype(the_geom)asthe_geomfromstates_postgis;

state_name|state_abbr|persons|families|houshold|male|female|the_geom

---------------+------------+----------+----------+----------+---------+---------+--------------

Iowa|IA|2776755|740819|1064325|1344802|1431953|MULTIPOLYGON...

Massachusetts|MA|6016425|1514746|2247110|2888745|3127680|MULTIPOLYGON...

Nebraska|NE|1578385|415427|602363|769439|808946|MULTIPOLYGON...

NewYork|NY|18235907|4548344|6746555|8739138|9496769|MULTIPOLYGON...


Pennsylvania|PA|11881643|3155989|4495966|5694265|6187378|MULTIPOLYGON...

Connecticut|CT|3287116|864493|1230479|1592873|1694243|MULTIPOLYGON...

RhodeIsland|RI|1003464|258886|377977|481496|521968|MULTIPOLYGON...

NewJersey|NJ|7484736|1962314|2687478|3622220|3862516|MULTIPOLYGON...

Indiana|IN|5544159|1480351|2065355|2688281|2855878|MULTIPOLYGON...

Nevada|NV|1201833|307400|466297|611880|589953|MULTIPOLYGON...

...





InReality

GeoservershipswithaUSAstatesshapefilethathasalltheabovedatainit.Italsocontainsmorecolumnsthantheabove,butI'vesimplifieditforeasierreading.YoucanputtheGeoserver"states"shapefileinPostGIS,usingtheshp2pgsqlprogramthatcomeswithPostGIS,anduseaPostGISdatastoreinstead.

NOTE:Thisdiscussionisprettymuchthesameforanydatastore(ie.withoracle,shapefiles,DB2,SDE,etc...).

Intheaboveexampleofthedata,aFeatureisoneoftherows.Forexample

Iowa|IA|2776755|740819|1064325|1344802|1431953|MULTIPOLYGON...

isaFeature.

AgetFeaturerequestwillbetargettedatthedataandwillbringbackFeaturesintheformofGML.

(未完待续)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: