源码解读:
1.通过wicket的id去更改节点对应的值
/gs-web-core/src/main/java/org/geoserver/web/GeoServerBasePage.html
/gs-web-core/src/main/java/org/geoserver/web/GeoServerBasePage.java
2.点击页面上的 服务-WCS
请求的是org.geoserver.wcs.web.WCSAdminPage,也就是spring的配置文件里面的属性值
同样是使用了wicket的方式去充填视图
componentClass是对应的org.geoserver.wcs.web.WCSAdminPage类的对象
在很多的文件中,这个类都有作为对象去创建,然后通过wicket的listview的对象去加载。这个和目前安卓里面的滑动视图Listview和adapter有些异曲同工之处。
3.http get的请求
WMS的请求一般使用HTTP Get的形式直接从地址栏输入或者通过JS代码发送到服务器端。请求的格式如下所示:
http://localhost:8080/geoserver /wms?bbox=-74.01199448397661,40.70732689845813,-74.00841053684495,40.71216558957052&styles=&Format=application/openlayers&request=GetMap&version=1.1.1&layers=tiger:poi&width=457&height=550&srs=EPSG:4326,该请求中wms是要请求的服务,version=1.1.1是请求的wms版本,GetMap是请求的服务方法,tiger:poi是要访问的地理数据。
4.结构
“platform”,“main”,“ows”,“wfs”,“wcs”,“wms” 个包是主要的包。它们的关系如下图
展现了包之间的依赖关系,下面的包依赖上面的包,最顶端是“platform”。
“platform”,“ows”和“main”包含了GeoServer最基础最核心的类和接口,下面介绍一些重要的类和接口,“wfs”,“wcs”,“wms”将利用这些类来完成具体的功能:
1)platform包的org.geoserver.platform.Service类代表一个具体的服务,例如WMS,它用ID和VERSION来唯一标定,每一个服务都会提供若干操作(Operation);
2)platform包的org.geoserver.platform.Operation类代表某个服务下可以被请求的操作,例如GetCapabilities,这个类利用Java的反射机制;
3)ows包的org.geoserver.ows.Dispatcher类处理所有OWS的请求,是需要关注的重点;
4)main包的org.geoserver.catalog.Catalog接口包含资源访问的方法,这些资源有“Layer”,“Layer Group”,“Map”,“Namesapce”,“Resource”,“Store”,“Style”和“Workspace”,它们是组织和使用数据的关键;
5)main包的org.geoserver.config.GeoServer接口包含访问服务器公共配置信息的方法,我们将会在很多场合看到它;
6)main包里面还有一些描述资源的接口,例如org.geoserver.catalog.LayerInfo代表“Layer”资源。