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派发也有一个发展变化的过程。
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
AdatasetisthedatathatwillbereadbythegetFeature()request.Itiswhatmakesupourmaps.
HereisanexampleofaPostGISdatabase(orashapefile)withthefollowingdatainit:
NOTE:Thisdiscussionisprettymuchthesameforanydatastore(ie.withoracle,shapefiles,DB2,SDE,etc...).
Intheaboveexampleofthedata,aFeatureisoneoftherows.Forexample
isaFeature.
AgetFeaturerequestwillbetargettedatthedataandwillbringbackFeaturesintheformofGML.
(未完待续)
粟卫民
保留所有版权。如需转载,请联系作者,并在醒目位置注明出处
本来是打算一个工程一个工程来分析介绍,可是在学习的过程中,发现这样的效果并不好,连自己有时候都被一些代码搞得晕头转向,所以转换了思路。先学习和介绍一些关于GeoServer的通用的原理,然后再针对每一个工程进行分析。由于接收输入为任何系统的第一步,因此首先从Servlet及HTTP派发过程开始。GeoServer的HTTP派发也有一个发展变化的过程。
1.6版之前的HTTP派发过程
在GeoServer的1.6版本之前的版本中,还没有使用OWSDispatchingSystem(WfsDispatcher
org.vfny.geoserver.wfs.servlets.WfsDispatcher
具体可参考:HowaGetFeatureRequestsWorks,(
HowaGetFeatureRequestsWorks
ThispagewilldescribehowagetFeature()requestworksinGeoserver.ItwillalsoshowyouhowtosetupEclipseandusethedebuggertorunthroughagetFeature()requestyourself.
TherearethreebodiestoagetFeature()request:
DataSet Request
|
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. |
Intheaboveexampleofthedata,aFeatureisoneoftherows.Forexample
Iowa|IA|2776755|740819|1064325|1344802|1431953|MULTIPOLYGON...
isaFeature.
AgetFeaturerequestwillbetargettedatthedataandwillbringbackFeaturesintheformof
(未完待续)
相关文章推荐
- GeoServer学习手记(五):Servlet及HTTP派发过程之二
- GeoServer学习手记(六):Servlet及HTTP派发过程之三
- GeoServer学习手记(四):Servlet及HTTP派发过程之一
- GeoServer学习手记(五):Servlet及HTTP派发过程之二
- GeoServer学习手记(六):Servlet及HTTP派发过程之三
- GeoServer学习手记(七):Servlet及HTTP派发过程之四
- GeoServer学习手记(七):Servlet及HTTP派发过程之四
- GeoServer学习手记(八):Servlet及HTTP派发过程之五
- GeoServer学习手记(八):Servlet及HTTP派发过程之五
- GeoServer学习手记(十):一个完整的WMS请求响应过程
- GeoServer学习手记(十):一个完整的WMS请求响应过程
- 我的servlet学习过程(二):tomcat服务器部分
- 系统学习JavaWeb之六别有洞天的Servlet进阶篇HttpServlet
- JavaWeb学习笔记--HttpServletRequest、HttpServletResponse对象常用方法
- GeoServer的Http请求派发过程------GeoServer研究随笔一
- java Web Servlet学习笔记-1 HttpServletQequest对象的学习
- java web开发--Servlet学习之HelloWorld 从部署到开发全过程
- Protocol Buffers学习小记-基于servlet的http RPC实现
- GeoServer学习手记(一):GeoServer概述
- GeoServer学习手记(二):代码下载及在Eclipse中加载