|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
手机用到的是用j2me所编出来的小程序。js<b>关于JSP公布舆图服务</b>
起首先容下用于公布舆图服务的ArsIMS
ArsIMS是一个由Presentation层,BusinessLogic层,data层构成的多层架构,别的,它另有一个用于办理舆图网页公布的使用程序集.
(1)presentation层是ArcIMS的客户端,能够取得,扫瞄和剖析地舆数据(geographicdata)
(2)businesslogic层的组件用于哀求处置和ArcIMS的网页办理
(3)data层包括了一切ArcIMS可用的数据源
(4)使用程序集为businesslogic层Authoring,Designing,AdminiseringArcIMSService供应出口
businesslogic层是全部ArcIMS的中心,是卖力客户端和数据源交互的两头历程,包含服务启动和处置哀求(request)和反响(response).
一个哀求处置的历程是:
当一个包括地舆数据剖析的哀求从客户端抵达WebServer(Tomcat,IIS等)时,WebServer必要将哀求传送给ArcIMSApplicationServer,它是一个背景实行的程序,传送哀求到ArcIMSSpatialServer,并列出ArcIMSSpatialServer正在运转的服务.后者处置哀求,前往一个Response,这个Response逆序传到客户端,由客户端剖析
(parse)并出现.
这个过程当中因为WebServer从客户端取得的哀求多是多种言语情势的,而ArcIMSApplicationServer和ArcIMSSpatialServer之间的交互是经由过程ArcXML(animplementationofXMLusedwithArcIMS)来举行的.以是在WebServer和ArcIMSApplicationServer之间必要有一个connector作为ArcXML的翻译器,ArcIMS自带了四种可选的connector:
ArcIMSServletConnectorArcIMS默许的connector,HTML,JavaCustom,andJavaStandard视图都可.ArcIMS自带的ArcExplorer,ArcMap,和ArcPad也用这个connector.
ArcIMSColdFusionConnector不懂
ArcIMSActiveXConnector撑持ASP
ArcIMSJavaConnector撑持JSP
接纳甚么connector这内里除有个选择的开辟言语外,另有功能的成绩(即ClientSideversusServerSideProcessing).
选用ArcIMSServletConnector,是ClientSideProcessing,应当就是所谓的"胖客户"吧,客户端发生间接ArcXML情势的哀求,connector没有任何剖析感化,只是传送ArcXML哀求和回应,客户端必要剖析ArcXML回应以出现舆图.
选用JavaConnector,是所谓的"瘦客户",ArcXML的一切处置,包含哀求和回应,都是在服务器端完成的.Jsp传送一个哀求,WebServer先承受这个哀求,JavaConnector将这个哀求翻译为ArcXML,然后传交给ApplicationServer和ArcIMSSpatialServer.当ArcIMSSpatialServer发生回应,原路前往到JavaConnector时,JavaConnector又将这个ArcXML情势的回应翻译为JSP的回应,再经由过程WebServer传给客户端,并静态更新JSP.
很分明利用JavaConector客户真个速率会快良多,由于舆图的矢量数据对照年夜,一切的哀求和回应都在客户端举行将影响功能.
下文会商用JSP公布舆图网页的两种情势.
利用Java框架来公布ArcIMS,必要有JavaVM,WebServer和Servlet引擎.在我的电脑上,利用的是java1.4sdk,Tomcat,JavaConnector.
因为我本人对Servlet懂得不深,说一点本人的看法,以期举一反三.
<b>Servlet是嵌进在WebServer中的,经由过程一组servletAPI使JavaVM和WebServer毗连起来,以完成对JSP等包括JAVA言语的哀求的处置.</b>以是这里的JavaVM不克不及利用JRE(JavaRuntimeEnviroment),由于它只运转java的class文件,不举行编译,而必要JDK(JavaDevelopingKit).
ArcIMS中自带了JavaConnector,它是以.jar情势存在的,利用时应将它放在WEB-INF下的lib文件下.
JavaConnector自带了一组JavaBean和一个JSPTag库.二者总的功效都是将JSP的哀求转化成ArcXML.
这些Javabean是编写自力和可重用的组件成为大概.它们都有一系列优秀封装的Set,Get办法,我们能够使用这些JavaBean和它们的办法来完成舆图的各类显现功效,刻画舆图标记(点,线等),增添静态图层,查询相干数据,办理和判别服务等,我的了解是ArcGIS等地舆画图软件能够做到的功效,在这些JavaBean中都可找到响应的办法.这些JavaBean组成了ArcIMSJavaConnectorObjectModel.
JSPTag库是创建在ArcIMSJavaConnectorObjectModel上的JSP标志的汇合.这些标志供应了ObjectModel的接口.我们能够以为这个标志是JavaConnector中的Connector.由于它毗连了JSP和JavaBean.用这类标志言语Tag的写的JSP哀求由JSPTag库转化成JavaBean可以辨认的对象,这些JavaBean再将哀求转化成ArcXML.
JSPTag库包括标志(Tag)的称号,属性,和嵌套的标志(Tag).
上面给出一个利用JSPTag库的JSP例子,可以用JSP公布一幅舆图有缩小功效.
example.jsp
<%@pagecontentType="text/html"%>
<%@tagliburi="arcims_taglib.tld"prefix="aims"%>
<%
StringtheMapAction=request.getParameter("mapaction");
Stringx=request.getParameter("map.x");
Stringy=request.getParameter("map.y");
StringmapMaxX=null;
StringmapMaxY=null;
StringmapMinX=null;
StringmapMinY=null;
if(request.getParameter("maxx")!=null){
if(!request.getParameter("maxx").equalsIgnoreCase("")){
mapMaxX=request.getParameter("maxx");
mapMaxY=request.getParameter("maxy");
mapMinX=request.getParameter("minx");
mapMinY=request.getParameter("miny");
}
}
%>
<aims:tcpConnectionid="myConnection"host="localhost"port="5300"debug="true"/>
<aims:mapServiceid="myMapService"connectionId="<%=myConnection%>"name="NetUniversity"loadEnvelope="false"loadExtensions="false"loadRecordset="false"loadRenderer="false"/>
<aims:mapid="myMap"serviceId="<%=myMapService%>"width="500"height="350"envelope="myEnvelope">
<%
if(request.getParameter("maxx")!=null){
if(!request.getParameter("maxx").equalsIgnoreCase("")){%>
<aims:envelopeminx="<%=mapMinX%>"miny="<%=mapMinY%>"maxx=">%=mapMaxX%<"maxy="<%=mapMaxY%>"/>
<%
}
}
if(theMapAction!=null){
if(theMapAction.equals("zoomin")){
%>
<aims:zoomfactor="2"x="<%=x%>"y="<%=y%>"/>
<%
}
}
%>
</aims:map>
<html><head><title>SimpleZoomIn</title></head><body>
<palign="center">
<formaction="example.jsp"method="post">
<tableborder="1"cellpadding="5"width="500"align="center">
<tr><tdalign="center">
<inputtype="image"name="map"src="<%=myMap%>">
</td></tr>
</table>
<inputtype="hidden"name="mapaction"value="zoomin">
<inputtype="hidden"name="maxx"value="<%=myEnvelope.getMaxX()%>">
<inputtype="hidden"name="maxy"value="<%=myEnvelope.getMaxY()%>">
<inputtype="hidden"name="minx"value="<%=myEnvelope.getMinX()%>">
<inputtype="hidden"name="miny"value="<%=myEnvelope.getMinY()%>">
</form>
</p>
</body>
</html>
用JSP公布舆图上风是分明的,毗连Oacle数据库只需写一个数据库毗连的JavaBean就能够完成,也能够读取舆图上Symbol的信息作为查询前提,设想的远景是优美的.
临时先写到这里,因为库中JavaBean较多,相干办法也不分明,大概是分明办法不克不及写程序,如今十分忧郁.还请人人出格是师兄们给我指导迷津.
你精通任何一门语言就最强大。现在来看,java的市场比C#大,C#容易入手,比较简单,java比较难 |
|