ArcServer for Java 我自己的讲座

     贴别人的东西,又整格式,还得写个“转”,感觉莫名的气愤,你大爷的,我自己写了,但有些东西还得学学人家的,毕竟自己还不行啊!
下面的都是一个初学ArcServer和java的菜鸟写的,大家学习还是看——权威牛魔王的吧! http://warrenwyf.spaces.live.com/?_c11_BlogPart_pagedir=Next&_c11_BlogPart_handle=cns!C71882196B68EEE5!628&_c11_BlogPart_BlogPart=blogview&_c=BlogPart

 第一讲 前言------为什么我们选择JSF,而不是其它framework
        
做过Engine,用ASP做Server就感觉很类似,都是基于事件处理的,插入地图控件,JSF,类似的框架,我想ESRI是为了方便实现吧,其实真正做Java的人是很不熟悉JSF的,也很不适应针对事件变成,所以用JSF开发,Java程序员总是多用Struts处理,能不用JSF就不用JSF。
        自己学习JSF,感觉就是很不好用,比ASP难用,难学。
        牛魔王所说的在Google中输入JSF和Structs,确实相差不大,但在Baidu中输入,结果就差很多了,看来国人用JSF的很少。
第二讲 建立自己第一个AGS for Java工程
       这个我自己写了一篇,可以看看,里面有需要的文件
第三讲 什么是ADF
      
         牛魔王里没显示出来的就是这张图了,客户端和服务器端,还有发布服务的数据源端,“ADF主要是由一些JSF组件、实现GIS相关功能的Java类库、支持AJAX的JavaScript脚本库和一些帮助文档及例子的集合”,
第四讲  ADF的逻辑结构
        
  以前看这张图没什么感觉,但今天看就感觉爽啊,我们在JSP页面里使用了控件#{mapContext.webMap},这个东西要在faces-config。xml里面配置的,这个叫WebContext,就相当于一个大容器,这下面的东西都装在它里面,配置文件中,它有attribute和resources两个属性,attribute里的值都对应着Jsp中的控件,value值都在context-attribute。xml中具体给值,resources中只有一个值ags1,但在ags1的属性中油一个functionalities,这定义了他的功能,这些功能在ags-functionalities。xml中具体给值了,我们自己看看也知道,attribute中的值<map-entry>
      <key>
      map</key>
      <value>
      #{agsMap}</value>
     </map-entry>
这些和functionalities中的一样,对应着同样的值了,这就是上面这张图了。

第五讲 ADF怎么开始工作的
      这个牛魔王讲的很好了,我自己总结下了,下面是web。xml中最简单的代码了,在少了地图就显示不出来了,“ADFServletContextListener负责创建WebApplication(老大);当有用户请求的时候,请求会经过ADFFilter过滤并试图获得该请求的WebSession(老大的小弟),如果为null则创建 WebSession并保存;在WebSession中包含了该会话使用的所有WebContext(老大的小弟的小弟)”,这就是这个过程了,
ContractedBlock.gif ExpandedBlockStart.gif Code
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app id="WebApp_ID">

  
<display-name>Web Mapping Application</display-name>

  
<!-- Context Parameters -->

  
<context-param>
    
<param-name>javax.faces.CONFIG_FILES</param-name>
    
<param-value>
      /WEB-INF/functionalities/aims-functionalities.xml,
      /WEB-INF/functionalities/ags-functionalities.xml,
      /WEB-INF/functionalities/aws-functionalities.xml,
      /WEB-INF/functionalities/wms-functionalities.xml,
      /WEB-INF/functionalities/ejb-functionalities.xml,
      /WEB-INF/functionalities/graphics-functionalities.xml,
      /WEB-INF/ajax-renderers.xml,
      /WEB-INF/context-attributes.xml
    
</param-value>
  
</context-param>

  
<context-param>
    
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    
<param-value>server</param-value>
  
</context-param>

  
<context-param>
    
<param-name>com.esri.adf.LOG_LEVEL</param-name>
    
<param-value>SEVERE</param-value>
  
</context-param>
  
<!--<security-filter>-->
  
<filter>
    
<filter-name>SessionTimeout</filter-name>
    
<filter-class>
      com.esri.adf.web.util.ADFSessionTimeoutFilter
    
</filter-class>
    
<init-param>
      
<param-name>redirectPage</param-name>
      
<param-value>/timeout.html</param-value>
    
</init-param>
    
<init-param>
      
<param-name>errorPage</param-name>
      
<param-value>/error.html</param-value>
    
</init-param>
  
</filter>
  
<filter>
    
<filter-name>ADFFilter</filter-name>
    
<filter-class>com.esri.adf.web.util.ADFFilter</filter-class>
  
</filter>
    
<!--<security-filter-mapping>-->
  
<filter-mapping>
    
<filter-name>SessionTimeout</filter-name>
    
<url-pattern>*.jsf</url-pattern>
  
</filter-mapping>
  
<filter-mapping>
    
<filter-name>ADFFilter</filter-name>
    
<url-pattern>*.jsf</url-pattern>
  
</filter-mapping>

  
<listener>
    
<listener-class>
      com.esri.adf.web.util.ADFServletContextListener
    
</listener-class>
  
</listener>

  
<!-- Servlets  -->
  
<servlet>
    
<servlet-name>Faces Servlet</servlet-name>
    
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    
<load-on-startup>1</load-on-startup>
  
</servlet>

  
<servlet>
    
<servlet-name>MimeData Servlet</servlet-name>
    
<servlet-class>com.esri.adf.web.util.ADFMimeDataServlet</servlet-class>
    
<load-on-startup>1</load-on-startup>
  
</servlet>

  
<servlet>
    
<servlet-name>Tile Servlet</servlet-name>
    
<servlet-class>com.esri.adf.web.util.ADFTileServlet</servlet-class>
    
<load-on-startup>1</load-on-startup>
  
</servlet>

  
<servlet>
    
<servlet-name>Upload Servlet</servlet-name>
    
<servlet-class>com.esri.adf.web.util.ADFUploadServlet</servlet-class>
    
<load-on-startup>1</load-on-startup>
  
</servlet>

  
<servlet>
    
<servlet-name>Download Servlet</servlet-name>
    
<servlet-class>com.esri.adf.web.util.ADFDownloadServlet</servlet-class>
    
<load-on-startup>1</load-on-startup>
  
</servlet>

  
<!-- Servlet Mappings -->
  
<servlet-mapping>
    
<servlet-name>Faces Servlet</servlet-name>
    
<url-pattern>*.jsf</url-pattern>
  
</servlet-mapping>

  
<servlet-mapping>
    
<servlet-name>MimeData Servlet</servlet-name>
    
<url-pattern>/mimedata/*</url-pattern>
  
</servlet-mapping>

  
<servlet-mapping>
    
<servlet-name>Tile Servlet</servlet-name>
    
<url-pattern>/tile/*</url-pattern>
  
</servlet-mapping>

  
<servlet-mapping>
    
<servlet-name>Upload Servlet</servlet-name>
    
<url-pattern>/upload</url-pattern>
  
</servlet-mapping>

  
<servlet-mapping>
    
<servlet-name>Download Servlet</servlet-name>
    
<url-pattern>/download</url-pattern>
  
</servlet-mapping>

  
<welcome-file-list>
    
<welcome-file>index.html</welcome-file>
  
</welcome-file-list>

  
<error-page>
    
<exception-type>java.lang.Exception</exception-type>
    
<location>/error.jsp</location>
  
</error-page>
  
<!--<security-constraint>-->
</web-app>

第六讲 ADF的页面结构
       服务器端就是JSP页面#{mapContext.webMap}到faces-config。xml的Attribute的map到context-attributes。xml里的map。
       客户端就是<a:map>通过MapRenderer生成xml,xml和map。xsl生成HTML和JS库的对象,JS库里包括了EsriMap等客户端的JS object。

转载于:https://www.cnblogs.com/gaofei_work/archive/2009/07/29/1533779.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值