版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1步、导入页面将页面资料复制到项目的“WebRoot”文件夹下。注:确保每个页面的字符符合JSP的编码方式(GBK或UTF-8)第2步、导入数据库驱动将“mysql-connector-java-51.1.12-bin.jar”复制到项目的“WebRootWEB-INFlib”文件夹下,刷新项目后出现。第3步、添加Struts框架1、添加Struts:在项目名字上点右键选择如下图2、在“Base package for new classes”里填上“web”,点击Finish。3、在web.xml文件里:删除下面的配置 config /WEB-INF/struts-config.xml d
2、ebug 3 detail 3 index.jsp加上字符过滤器: filter filter.CharFilter charSet gbk filter /* 4、在上点右键,新键一个filter包,然后下这个包下编写一个为CharFilter.java的文件,文件代码如下:package filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.Ser
3、vletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class CharFilter implements Filter private String charSet=null;public void destroy() public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletExce
4、ption request.setCharacterEncoding(charSet);response.setCharacterEncoding(charSet);chain.doFilter(request, response);/向后传递控制权public void init(FilterConfig config) throws ServletException charSet=config.getInitParameter(charSet);5、建立entity包,并根据Hibernate框架来生成实体类(User)详细请参考第五步、添加Hibernate的框架第四步、在Struts
5、框架下完成一个登录操作1、在页面上:$UserLoginInfo.user_name 大驾光临发布商品我的宝贝注销 用户名: 密码:用户注册 2、struts-config.xml文件里: 注1:form-bean标签里的type的值固定成:org.apache.struts.action.DynaActionForm注2:form-property标签里的name的值为属性值,在页面上提交表单里的name应写为:属性值.实体的字段值。例如user.user_name。 注1:action 标签里的path的值与form表单提交时.do前面的单词保持一致。注2:action标签里的name的值
6、与form-bean标签里的name的值保持一致。注3:action标签里的type的值与web包里所写的DispatchAction的名字保持一致。注4:action标签里的parameter的值与form表单提交时.do?后面的单词保持一致。注5:exception标签里的key的值与web包里的ApplicationRperties文件里面的一致。注6:exception标签里的type的值与biz包下面的exception包里的LoginException.java文件名一致。注7:excetion标签里的path的值是报错后转向的路径,必须有“/”这个符号。注8:forward标签里
7、的name的值是与web包里的DispatchAction文件里所调用的方法doLogin里面的return mapping.findForward(success); 里的success这个单词保持一致。注9:forward标签里的path的值是正确执行后转向的路径,必须有“/”这个符号。3、DispatchAction.java文件(这里文件名为:EpaiDispatchAction.java)里:package web;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRes
8、ponse;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.DynaActionForm;import org.apache.struts.actions.DispatchAction;import biz.UserLoginBiz;import entity.User;public class EpaiDisp
9、atchAction extends DispatchAction private Biz biz;/ 用户登录控制器方案public ActionForward doLogin(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception DynaActionForm df = (DynaActionForm) form;User user = (User) df.get(user);User userInfo = biz.doL
10、ogin(user);request.getSession().setAttribute(UserLoginInfo, userInfo);return mapping.findForward(success);注:df.get(“user”)里面的user和form-property标签里的name的值为属性值,要一致。4、在biz包里建一个Biz.java,其内容如下:package biz;import java.util.List;import biz.exception.LoginException;import dao.BaseDao;import entity.User;publ
11、ic class Biz private BaseDao dao;public User doLogin(User user) throws Exception List list=(List)dao.findByParams(from User u where u.user_name=? and u.user_password=?, user.getUser_name(),user.getUser_password();if(list.isEmpty()throw new LoginException();return (User) list.get(0);5、在biz.exception包
12、里建一个LoginException.java,其内容如下:package biz.exception;public class LoginException extends Exception 6、在web包里的ApplicationRperties文件里写上:第五步、添加Hibernate框架1、加入Hibernate2、只选择Hibernate3.2 Core Libraries - 3、点击Next后:4、点击Next后去掉Specify database connection details?前的勾,再点击Next:5、去掉Create SessionFactory?前的勾,由Spr
13、ing的容器来使用SessionFactory:6、在MyEclipse右上角点击7、在MyEclipse左上角点击MyEclipse Derby选择New8、Driver template为要用的数据库类型;Driver name为在MyEclipse里的名称;为主机名:一般为localhost;为数据库名;User name为数据库链接帐号;Password为数据库链接密码;9、加入Driver JARS (数据库驱动JAR包):点击Add JARs按钮:10、找到数据库JAR包点打开后,再点击Finish.11、双击新建的DB:12、输入数据库登入密码(如果保存了密码就没有这一步):13
14、、打开新建的DB里面的数据库,找到要建立的实体所对应的表(也可选择多张表):14、Java src falder为项目里的src的路径;Java package为实体对象的包名;点击Finish15、提示是否进入JAVA视图,点击Yes16、打开hibernate.cfg.xml,DB确Driver里选择新建的DB Driver:17、点击Properties里的Add.按钮18、Property选择:format_sql,Value值为:true19、Property选择:show_sql,Value值为:true注:Hibernate框架成功建立应该有以下三方面:a.构建路径上有hiber
15、nate的jar.b.在src下有hibernate.cfg.xml文件.c.在entity下有实体类,并且在同一目录下有实体类名.hbm.xml.20、双击所建实体(User.java和User.hbm.xml)修改对应表的字段的属性,使其保持一致,也可以删除“Customers.hbm.xml”后自己新建xml文件,21到25点的步骤为新建和编写xml文件21、指向点击右键选择后,在File name里填写“实体类名.hbm.xml”22、点击Next后,选择Create XML file from a DTD file,点击Next23、选择Select XML Catalog entr
16、y,并找到Hibarnate Mapping DTD 3.0/EN,后击Next24、点击Finish25、在dao包里建立BaseDao文件来链接数据库,文件代码如下:package dao;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;public class BaseDao /增加public void save(Object o)Session s=HibernateSessionFactory.getSessi
17、on();Transaction tx=s.beginTransaction();s.save(o);mit();HibernateSessionFactory.closeSession();/删除public void delete(Object o)Session s=HibernateSessionFactory.getSession();Transaction tx=s.beginTransaction();s.delete(o);mit();HibernateSessionFactory.closeSession();/修改public void update(Object o)Se
18、ssion s=HibernateSessionFactory.getSession();Transaction tx=s.beginTransaction();s.update(o);mit();HibernateSessionFactory.closeSession();/通过ID查找public Object findById(Class clazz,Long id)Session s=HibernateSessionFactory.getSession();Transaction tx=s.beginTransaction();Object o=s.get(clazz, id);mit
19、();HibernateSessionFactory.closeSession();return o;/通用查找public List findByParams(String hql,Object.params)Session s=HibernateSessionFactory.getSession();Transaction tx=s.beginTransaction();Query q=s.createQuery(hql);if(params!=null)int i=0;for(Object p:params)q.setParameter(i, p);i+;List list=q.list
20、();mit();HibernateSessionFactory.closeSession();return list;/通用查找一条记录public Object findByParams2(String hql, Object. params)List list=this.findByParams(hql, params);if(!list.isEmpty()return list.get(0);return null;/分页查找public List findByParamsWithPage(int page,int pageSize,String hql,Object.params)S
21、ession s=HibernateSessionFactory.getSession();Transaction tx=s.beginTransaction();Query q=s.createQuery(hql);if(params!=null)int i=0;for(Object p:params)q.setParameter(i, p);i+;List list=q.setFirstResult(1)*pageSize).setMaxResults(pageSize).list();mit();HibernateSessionFactory.closeSession();return
22、list;注:操作数据的原则1.hibernate有自己的管理对象的阶段(生命周期)。2.对于new创建的数据只做save3.先查询才能做改或删.4.做查询时要先close再return。5.不要对主键属性赋值.面试:临时态和游离态对象有可能被垃圾回收,而持久态永不会回收.26、打开Bid.hbm.xml编写配置文件如下: 说明:a.类表映射b.主键映射若属性名与列名一致,可省略column。c.属性/字段映射注意:数据库类型java类型(实体类属性类型)hibernate配置中的类型varcharjava.lang.Stringjava.lang.Stringbigintjava.lang.
23、Longjava.lang.Longintjava.lang.Integerjava.lang.Integerbitjava.lang.Booleanjava.lang.Booleanblobjava.lang.bytebinarydatejava.sql.Datejava.sql.Datetimestampjava.sql.Timestampjava.sql.Timestampchar(1)java.lang.Characterjava.lang.Character第六步添加Spring容器1、加入Spring2、选择Spring1.2,勾上“AOP Libraries”“Core Libr
24、aries”“Persistence Core Libraries”和“web Libraries”,并选择“Copychecked Library contents to project folder”,点击Next:3、点击Next:4、点击Finish:第七步Struts与Spring整合1、在web包里的EpaiDispatchAction.java里将biz加上set方法:private Biz biz;public void setBiz(Biz biz) = biz;2、在biz包里的Biz.java里将dao加上set方法:private BaseDao dao;public
25、void setDao(BaseDao dao) this.dao = dao;3、中修改struts的配置文件struts-config.xml,将: 里面的type的值修改为:org.springframework.web.struts.DelegatingActionProxy4、在struts-config.xml文件的最后加入: 2、在applicationContext.xml里配置:petBizJiaFengAdvice注:web.EpetDispatchAction里必项有biz的set方法,biz.Biz里必须有dao的set方法,Action、Biz、Dao的ref和id要
26、层层相扣。第八步aop的应用(用来在不修改源码的情况下增加新功能,建立SSH时,可以跳过)aop的相关名词()advice:表示一个增强的功能.pointCut:表示一次或多次方法调用.advisoradvice+pointcutinterceptor=advice或advisor1、创建一个Advice对象,覆写方法完成增加的功能。package biz;import ercept.MethodInterceptor;import ercept.MethodInvocation;public class JiaJiFenAdvice implements MethodInterceptor
27、Override/覆写方法完成增加的功能public Object invoke(MethodInvocation invocation) throws Throwable Object res=null;try /这里添加:在原有功能前加功能res=ceed();/这里添加:在原有功能后加功能 catch (Exception e) return res;2、在“applicationContext.xml”文件里配置:petDiaryBizpetLoginBizpetJiaJiFenAdvice第九步Hibernate与Spring的整合1、数据源托管,sessionFactory不再由h
28、ibernate提供,而改为spring提供。在applicationContext.xml里配置里体现为: 2、简化dao的编写(具体代码查看第五步的第25点)a.所有的dao继承HibernateDaoSupport。b.CRUD方法全部通过hibernateTemplate来完成.c.给dao注入sessionFactory.3、给业务层增加事务服务PROPAGATION_REQUIREDPROPAGATION_REQUIRED,readOnly附录资料:WebGIS超详细版复习资料WebGIS复习资料第一章 绪论WebGIS的基本概念(熟悉GIS+WWW=Web GISWeb GIS是
29、指基于Internet平台进行信息发布、数据共享、交流协作Web GIS由多主机、多数据库、多终端,通过Internet/Intranet连接组成,具有C/S结构,服务器端向客户端提供信息和服务,客户端具有获得各种空间信息和应用的功能Web GIS的特点Web GIS的逻辑结构Web浏览器:获取网上各种地理信息Web GIS的信息代理:提供数据访问接口Web GIS服务器:提供地理信息服务传统GIS的问题文件服务器结构的处理能力完全依赖于客户端客户端的任何操作复杂,多版本,数据完整性难以控制成本高桌面系统操作复杂Web GIS的优点Web GIS是集成的全球化的客户/服务器网络系统Web GI
30、S是交互系统,用户可在Internet上操作GIS地图和数据,使用Web浏览器进行Zoom、Pan、Query、Label等,甚至空间查询Web GIS是分布式系统,GIS数据和分析工具是独立的组件和模块,可部署在不同的计算机Web GIS是动态系统,可随时更新Web GIS是跨平台系统,对任何计算机和操作系统都没有限制Web GIS能够访问异构地理数据Web GIS是图形化的超媒体信息系统,通过超媒体热链接(或地图上的热点)可以连接到不同的地图页面应用层面空间数据发布:能够以图形方式显示空间数据,较之单纯的FTP方式,WebGIS使用户更容易找到需要的数据;空间查询检索:利用浏览器提供的交互
31、能力,进行图形及属性数据库的查询检索;空间模型服务:在服务器端提供各种空间模型的实现方法,接受用户通过浏览器输入的模型参数后,将计算结果返回。Web资源的组织:在Web上存在着大量的信息,这些信息多数具有空间分布特征,如分销商数据往往有其所在位置属性,利用地图对这些信息进行组织和管理,并为用户提供基于空间的检索服务,无疑也可以通过WebGIS实现。几种商业化Web GIS平台(了解)MapInfo公司的MapXtremeESRI公司的ArcIMSAdobe公司的 MapGuide超图公司的SuperMap IS中地公司的 MAPGIS IMS计算机网络基本原理计算机网络的发展(了解)第一阶段:
32、以主机为中心的联机终端系统。第二阶段:以通信子网为中心的主机互联 通信子网和资源子网的分离第三阶段:开放化标准化网络 开放系统互联参考模型协议、TCP/IP协议第四阶段:宽带综合业务数字网 综合、高速、智能计算机网络的分类(熟悉)按地域大小局域网 广域网 城域网按通信媒体有线网 无线网 有线无线混合网按数据交换方式分线路交换方式 报文交换方式 分组交换网络按使用范围分公用网 专用网OSI开放系统参考模型(了解)几种基本网络设备中继器(转发器)(物理层)网桥(网能够络分段、局域网互联)(数据链路层)路由器(网络连接、路径选择)(网络层)网关(不相同的网络互联时的设备)(高层)(协议网关、应用网关
33、、安全网关)TCP/IP协议作为当前公认的工业标准,TCP/IP协议的特点开放性,独立于硬件,免费统一分配网络地址高层协议标准化IP地址原理IPV4IP地址=网络ID+主机IDIP地址分类A类 0开头 后24位为主机IDB类 10开头 后16位为主机IDC类 110开头 后8位为主机IDD类地址 1110开头 多重广播E类地址 11110开头 实验性地址 域名系统(Domain Name System,DNS) 是Internet上解决网上机器命名的一种系统。就像拜访朋友要先知道别人家怎么走一样,Internet上当一台主机要访问另外一台主机时,必须首先获知其地址,TCP/IP中的IP地址是由
34、四段以“.”分开的数字组成,记起来总是不如名字那么方便,所以,就采用了域名系统来管理名字和IP的对应关系。组织模式下的顶级域名表顶级域名网络属性顶级域名网络属性顶级域名网络属性com盈利商业实体mil军事机构或组织store商场edu教育机构或设施net网络资源或组织wb有关实体gov非军事政府或组织org非盈利组织机构arts文化娱乐int国际性机构firm商业或公司arc消遣性娱乐主机的IP地址和域名的关系两者是等价的相当于身份证号码和人名但域名具有排他性域名与IP地址被存储在DNS(域名服务器)中。地址和域名的解析域名解析器 客户端程序,负责查询域名服务器 主域名服务器 转发域名服务器关
35、于Web的一些基本概念WWWWorld Wide WebWeb由一系列链接连接起来Tim Berners Lee WWW的主要特点(熟悉)用户在全世界范围内查询、浏览最新信息支持超文本和超媒体信息服务使用浏览器作为统一的用户接口由资源地址域名和Web站点构成可以将Web站点互相连接,以提高信息查找和漫游访问服务能使用户与信息发布者或其他用户交流信息WWW的工作模式(熟悉)Web浏览器/Web服务器在浏览器中输入Web地址,向某个服务发出HTTP请求Web服务器收到请求后,在HTML文档中找到特定的页面,将请求返回给用户浏览器执行收到的HTML文档并显示内容HTTP协议(熟悉)HTTP协议:基于
36、Cilent/Server的无状态和无连接协议简单灵活:get/post/head元信息:可以传输任何类型的资料无连接:建立在TCP协议之上,每次连接只处理一个请求无状态:双刃剑统一资源定位符 (掌握)URL“协议:”+“/”+“主机域名/IP地址”+“目录路径”协议:HTTP/FTP/GOPHER/NEW/TELNET/Wails/File/TUNDER/Web应用开发技术介绍VBSCRIPTJAVASCRIPT动态网页技术CGIASPJSPDHTMLPHP第三章 Web GIS基本原理1.WebGIS概述1.1 Web GIS的发展 1993Xerox Map Server,第一个分布式地
37、理信息系统应用原型系统 1993.11 挪威Tromso大学,第一个地图Web服务器 1994.1 虚拟旅行者 1994 大发展 NSDI;UCSB; 1995 地图引擎的出现1996年 主要地理信息厂商介入1997年 DGI和Web GIS正式出现1998年 基于JAVA的WebGIS出现1999年 组件式WebGIS开始研究.2005年 瓦片式地图服务出现(GoogleMap)2006Bing/Baidu/MapABC/WPS/WMS1.2 Web GIS的信息内容构建信息内容涉及到信息组织、信息交互、信息表达、综合分析、数据安全和开放性信息组织:如何向客户端浏览器用户以最佳方式提供需要的
38、信息 (1)一次传输整个数据文件 (2)一次仅传输数据文件中需要的部分 (3)以图像方式传输空间数据信息交换:实现客户端与服务器的信息交流,使用一整套信息交换协议。协议一般分为请求/应答两个相互对应的部分。 功能包括:数据请求/信息查询/分析/制图/帮助/控制/元数据请求 主要方法:请求/响应模式信息表达: 操作界面的组织 空间信息的表达方式: 地图符号/专题图/统计制图结果/图例/文字信息描述等综合分析: WebGIS不能仅仅满足对空间数据的浏览和简单的数据查询,需要有完备的空间查询和空间分析能力,需要对数据库中的空间和属性数据进行复杂的处理数据安全: (1)数据库访问控制 (2)用户注册与
39、认证 (3)加密策略开放性 网络的可维护性 动态集成用户分析模型的能力 接受多种数据格式的能力 与其它系统集成的能力1.3 Web GIS的应用模式 (熟悉)Web GIS 应用模式 空间数据发布 空间查询检索 空间模型服务 Web资源组织原始数据下载不做任何处理,仅仅将空间数据通过FTP协议下载,这是最原始的WebGIS应用工作原理:服务器上的数据通过浏览器被下载到客户端,客户端的GIS软件即可使用这些数据缺点:无法在线浏览,GIS软件系统必须理解数据格式静态地图图像显示最简单Web的在线浏览方式服务器上使用GIS软件或者手工创建或生成地图图像,在HTML文档中包含地图图像。Web浏览器即可
40、在线浏览缺点:无法定制地图图像大小 无法进行要素查询元数据查询通过Web发布元数据,使用户及时了解自己所关注的空间数据情况,并通过适当的途径得到满足应用要求的空间数据。两种服务模式: 空间数据提供商自建元数据服务器发布; 空间数据交换中心发布两种查询方式: 通过元数据项值查询 通过图形界面查询动态地图浏览产生交互式地图浏览的一种方式图像不是静态图像,而是根据确切的参数(比例尺、位置、专题等)在使用过程中临时生成原理:Web浏览器发出URL请求给Web服务器,Web服务器根据URL请求及相应的参数,启动地图生成器,GIS接口程序,GIS软件或制图脚本,临时生成地图图像,并将其传送给Web浏览器显
41、示数据预处理不是简单将分布式地理信息数据简单下载给用户使用在数据传输之前,对原始数据进行预处理预处理:对数据格式变换、数据的投影变换以及坐标系统变换等经过预处理之后,用户便可以直接使用预处理后的数据数字区域空间信息管理与发布多比例尺、多源数据、分布式、多时态、多种数据格式基础地理信息实现Web GIS的基本方式 (熟悉)基于CGI方式 CGI是Web服务器调用外部应用程序的标准接口,用于在超文本文件和服务器主机应用程序间传递信息。 CGI程序语言可以是C、SHELL/VB/Fortran CGI程序是一个可执行程序。基于CGI方式的WebGIS工作原理:CGI方式的Web GIS特点优点: 瘦
42、客户端:客户端不需要安装任何软件,有支持标准HTML的Web浏览器即可 CGI跨平台缺点: 网络传输负担大 服务器负担重 同步多请求 静态图像 用户界面功能受Web浏览器影响相似的原理有ProServer/ArcViewIMS/MapObject/YahooMap与CGI方式原理类似的有 Server API:不能跨平台,依赖于Web服务器;效率比CGI方式高; JAVA Servlet:采用JAVA开发,面向Web服务器的小应用程序。方式灵活,效率高,跨平台,主流技术基于Plug-in方式Plug-in原理: NetScape提出 标准,一种接入浏览器程序的动态链接库,采用DLL方式,可以很
43、好地解决与浏览器程序间的相互调用问题。 胖客户端,能够正确地浏览很多数据类型,在浏览器端完成矢量信息的显示 插件:能够与浏览器交换信息的软件Plug-in方式的WebGIS工作原理Plug-in方式特点: 优点 无缝支持与GIS数据的连接 GIS操作速度快 服务器和网络传输负担轻 缺点: 平台相关 数据类型相关 需要事先安装 更新困难 操作分析资源能力弱基于ActiveX方式ActiveX是微软公司为适应因特网而发展的标准,是建立在OLE标准上,为扩展微软的Web浏览器功能而提供的公共框架,关于完成具体任务和信息通讯的的软件模块。ActiveX能够被任何支持OLE标准的语言或应用程序所使用。I
44、E浏览器作为容器,任何符合ActiveX的控件都能被嵌入网页中。ActiveX具备能够访问客户端本地系统的能力,功能强大,但存在隐患。ActiveX第一次安装需经过下载和用户确认Object标记在网页中用于定位ActiveX基于ActiveX的Web GIS功能工作原理基于ActiveX的Web GIS的特点优势:具备GIS Plug-in的所有优点,比plug-in模式更灵活,使用更方便缺点: 需要下载 与平台相关 与浏览器相关 使用已有的GIS操作分析资源的能力弱,处理大型的GIS分析能力有限 存在信息安全隐患基于JAVA Applet方式JAVA Applet原理 Applet是小型的J
45、AVA应用程序,专门为建立动态的Web网页而设计 每次随网页一起被加载到客户端,然后再客户端调用JAVA虚拟机执行 通过标签来调用 Applet仅仅被加载到客户端内存中,退出时会被回收,故不占磁盘 Applet不能访问本地文件系统,安全性较好基于JAVA APPLET方式的WebGIS工作原理基于JAVA Applet方式的WebGIS特点优点: 体系结构中立,与平台与操作系统无关 动态运行,无需预先安装 GIS操作速度快 服务器和网络传输负担轻缺点: 使用已有的GIS操作分析资源能力弱,处理大型的GIS分析能力有限 GIS数据的保存,分析结果的存储和网络资源的使用能力有限几种方式的比较性能指
46、标CGIPlug-inJAVA AppletActiveX执行能力客户端很好好好好服务端差到好好很好很好网络差好好好总体一般好好到很好好到很好相互作用相互作用差好很好很好功能支持一般 好很好很好本地数据支持否是否是可移动性很好差好一般安全很好一般好一般3.3 Web GIS空间数据组织WebGIS空间数据特点:分布式、多源、异构、特定的用户显示界面。1、地理信息本身的分布式特征 平面的分布 垂直的分布 分布的数据可能由不同的地域、不同的部门予以维护,其数据库服务器呈现分布式,具备不同网络地址2、地理信息存储方式不同,呈现出异质的特点 不同种类的数据可能采取不同的存储方式 不同类型的软件的数据格
47、式存储也迥然不同。ArcInfo的E00/MapInfo的MIF/AutoDesk 的DXF3、 中间件应用服务平台不同 部署Web GIS的平台也很多,包括操作系统平台和硬件平台的不同。WebGIS的客户端不同,支持的地理信息格式不同 三种类型: 专用的地理信息浏览器:ArcExplorer,GoogleEarth通用浏览器+地理信息显示插件:MapXtream通用浏览器:ArcIMS MapGIS IMS等需要将分布式、不同存储方式、不同存储格式和不同用户表现的信息叠加在同一个或这个多个分布式地理信息服务下进行解析、处理和生成结果。对于一个分布式的特定的地理信息服务,其数据流程表现出分布式
48、存储、集中式处理和不同格式分发等特点Web GIS地理信息空间数据服务流程Web GIS 地理信息服务空间数据流程 1服务消费者想分布式地理信息服务提供商发出特定知识请求 2.分布式地理信息服务提供商处理数据请求,把请求分类,把数据请求转发给数据提供商 3.数据提供商处理数据请求,把数据发送给分布式地理信息服务提供商 4.分布式地理信息服务提供商对数据根据用户的请求进行处理后,形成知识相应给服务消费者 5.服务消费者根据响应做进一步的处理超地图模型超媒体+地图=超地图超地图=具备地理参考的超媒体以地图为起点,空间链接和专题链接的集合文本超文本超文档超地图超地图的应用主要体现在空间浏览和专题浏览
49、上。采用超地图概念能够将不同地域的空间数据库有机组织起来分布式超地图模型1、分布式超地图模型由一系列空间对象构成2、每个空间对象包含四个基本内容 对象唯一标识,超媒体,超图形,超链接3、超地图二假定 1)确定的超地图的空间对象具有相同的时间和比例尺 2)超地图的空间对象的非空间属性由超媒体表达,空间属性超图形由超图形表达超链接定义了OS内部之间、对象O之间以及超地图H内部之间,超地图H之间非顺序链接关系和操作符方法的集合。SHL = TypeID,Type,TypeFeature,AttributeFeatureTypeID =4D,Multiscale,Metadata,Content,Cl
50、earHousingType=DataFile,Component,JDBCTypeFeature=Fnext,Fpre,Fsup,Fsub,Fsql,Fcurrent,Fmetadata,Fcontent, Fclearhousing,FotherAttributeFeature=Name,Location,ProtocolH=HM HG HL超媒体内部关系:多媒体的表现;综合,空间分析,统计制图超图形内部关系:空间信息表达,空间关系超媒体和超图形的相互关系:相互查询、专题制图、几何综合超地图之间的关系: 部分与整体的关系 地图概括关系 时间序列关系 武断链接关系基于超地图的WebGIS空间
51、数据组织分布式地理信息服务的处理服务可以看成为集中不同类型的超地图的操作。这些操作包括: 联合操作;交操作;差操作;投影操作;选择操作;笛卡尔积操作;连接操作基于GML的异构WebGIS空间数据组织XML概述 XML(eXtensible Markup Language) XML是1986年公布的(SGML)的子集 具备扩展性、文件自我描述、强大的文件结构化功能 一种用于定义其它语言的语言元语言 主要用途:元标记语言,定义其它语言,数据交换HTML与XML对比 (掌握)HTMLXML不具备扩展性元标记语言,可以用于定义新的标记语言侧重于表达信息侧重于结构化地描述信息不要求标记的嵌套、配对等,不
52、强制要求标识之间有一定的顺序严格要求嵌套、配对、并遵循DTD、SCHEMA的树形结构难以阅读、维护结构清晰,便于维护内容描述与显示方式整合成一体内容描述与显示方式分离已有大量的编辑、浏览工具编辑、浏览工具尚不成熟(这条忘掉)GML概述GML是XML在地理信息系统中的应用。GML3.0简介GML 3.0版是对GML 2.0版的扩充,并且向后兼容。Schema集合的组织具有了模块化特点,即用户能够有选择地使用所需部分,减化和缩小了执行的尺寸,提供了面向WEB应用、基于对象的地理数据描述语言。此外,3.0版增加了对复杂的几何实体、拓扑、空间参照系统、元数据、时间特征和动态数据等的支持,使其更加适合描
53、述现实世界问题,如基于位置服务的行程安排和高速公路设计等。 主要特点GML 3.0版新增的主要特性包括: 增加了复杂的空间几何元素,如曲线、表面、实体等,允许使用几何元素集合; 支持拓扑的存储,可表示定向的节点、边、面和三维实体; 引入了空间参照系统,给出了描述空间系统的框架,并预定义很多公用方案; 提供建立元数据与特征(属性)间联系的易于扩充的框架机制; 增加了时间特征和描述移动物体的能力,具有标准的年、月、日、时、分、秒模式和位置、速度、方位、加速度等动态特征。GML3.0设计目的为数据存储和传输提供一种空间信息编码方式高扩展性,满足从空间描述到空间分析不同空间任务需求渐进的、模块化方式建
54、立WebGIS基础对几何信息的高效编码空间信息与非空间信息的分离集成空间数据与非空间数据空间元素和其它空间与非空间元素的链接提供了一系列通用的地理模型对象,使独立开发的应用之间可以互操作GML3.0核心模式要素模式几何模式拓扑模式GML应用模式与核心模式的关系核心模式定义构建地理要素的基本组件应用模式在核心模式的基础上提供具体要素的定义(道路、河流、建筑物等)GML表示水井的例子 W1 5 rainwater 3.5 4.2 基于GML的异构WebGIS空间数据组织GML优点内容和形式分离GML遵循HTTP协议GML开放、自我描述、与非空间属性的集成XML 处理接口主要接口:DOM(文档对象模
55、型) SAX(XML简单应用程序接口)DOM:必须先在内存中构建一个DOM树,然后再去处理相应的节点添加、删除、查询等工作。对于较大的文档,比较占内存,不宜处理较大文档SAX:事件驱动模式,不必将所有的XML文档读入内存,适合处理大型文档。主要实现:JAXP、JDOM/XML4J/EXPAT/MSXMLWeb GIS应用服务器应用服务器是一个基于组件的中间层集成框架,它为组件的运行提供了运行环境,基础服务和管理功能。组件负责封装业务逻辑和业务数据并依赖于应用服务器工作。一般位于多层模式的中间层,与Web服务器集成使用,形成完整的基于Web的分布式应用运行环境几种基本的应用服务器开发技术DCOM
56、技术 是对COM技术的扩展,提供了一种使组件加入网络环境的网络协议,使用户可以将对于COM组件的应用、组件、工具以及知识转移到标准化的分布式计算领域中来。CORBA(普通对象请求代理架构) 由对象管理集团(OMG)定义的在不同语言、不同平台上实现对象的一种面向对象应用程序的体系规范。在不同的操作系统、语言、软件、网络协议和硬件结构之间提供给用户在应用层端到端的互操作。它由定义语言、接口和协议代理构成。ORB(对象请求代理) 为所有的对象提供一种面向总线的机制,在对象之间建立客户/服务器关系的中间件,提供了对象间信息流动所需的通路,使得独立的软件单元在异构环境下无缝地交互操作。利用ORB,客户端
57、程序能够以访问本地对象的方式访问远程服务对象。IDL(接口定义语言) 规定了组件的边界以及组件与潜在客户之间的接口,它是描述性语言,没有任何具体实现,给所有驻留在CORBA总线上的服务和组件提供了与操作系统与编程语言无关的接口。语言映射:将IDL定义的接口语言映射成具体的程序设计语言,例如C、C+、JAVA、SmallTalk等 接口库(IR):接口存储库是运行时的分布式数据库,包含了IDL所定义的接口 动态调用接口(DII)在运行时发现将被调用的对象网络接口对象请求代理协议(IIOP) 定义了如何在TCP/IP传输上构建GIOP,GIOP定义了传送语法和消息格式的标准集,能够在任何面向连接的
58、传输上实现ORB间的互操作性。WebGIS应用服务器框架WebGIS应用服务器是WebGIS应用信息系统的核心部分,所有的应用逻辑相关方法、模型和模型服务都是在应用服务器上实现。服务器用于执行特定公司或者部门的应用功能,通过处理由空间数据交换中心的数据来得到应用逻辑结果。数据库应用服务器则由模型库、方法库、知识库和相应的数据库管理系统构成。J2EE技术(JAVA EE)一种利用JAVA2平台来简化与多级企业解决方案的开发、部署和管理相关的复杂问题的体系结构提供了一个基于组件的方法,设计、开发、装配及部署企业应用程序。多层的分布式应用模型、组件重用、基于XML的数据交换、统一的安全模式以及灵活的
59、事务控制。基于J2EE的Web GIS应用服务器框架图第四章 WebGIS应用技术SVG在WebGIS中的使用SVG是Scalable Vector Graphics 的英文缩写,意即可升级的矢量图象,是一种基于XML标准的图形影像描述语言。SVG的产生有其客观必然性。进入20世纪90年代末,因特网的迅速发展使网上传统的栅格图像如(GIF,JPEG和PNG)已经很难满足人们的需要,为此,各知名厂商都纷纷推出了各自的Web图像解决方案。SVG 规范概述作为一种基于XML的二维欠量图形描述语言,SVG规定了17类80多种元素,涉及基本图形、文字图象的显示,图形元素动面、超链接、颜色渐变、透明效果、
60、滤镜效果、剪辑处理、模板、合成以及模式填充等方面。总的来说,SVG支持以下三个方面的内容。1、对矢量图形的支持矢量图形是用点和线来描述的,可以大大减少文件长度,提高传输效率。更重要的是,它将对图形效果的显示由服务器端移到客户端,可以充分利用客户端的资源,减轻服务器端的负担。 SVG有专门用于矢量图形描述的标记,包括矩形、圆、椭圆、直线,折线和多边形。此外,SVG还支持图形绘中制常用的、由Bezier曲线定义的路径描述和操作,其面系标记为。有了以上定义就可以对相应路径进行勾勒、填充、裁减和合成等一系列操作。2、对图像过滤操作的支持目前,网上传输的图像主要采用GIF、JPEG和PNG三种格式。尽管
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某电子厂来料检验细则
- 2026年10月梅岭街道锦旺社区招聘临时性公益性岗位2人考试模拟试题及答案解析
- 2027国家林业和草原局直属单位公开招聘应届毕业生282人(黑龙江19人)考试参考题库及答案解析
- 2026河北唐山弘慈医院招聘工作人员13名考试备考试题及答案解析
- 2026年10月广东珠海市教育局招聘直属学校事业编制教师178人考试参考题库及答案解析
- 2026天津市排球运动管理中心招聘高层次人才、急需紧缺人才2人笔试参考题库及答案解析
- 2026福建福州市江南智慧城市建设运营有限公司招聘3人笔试备考题库及答案解析
- 中国医学科学院基础医学研究所 北京协和医学院基础学院派遣人员招聘8人笔试备考题库及答案解析
- 2026年户外床行业洞察报告及未来五至十年发展趋势报告
- 2026年棕制品制造行业市场深度调研报告及未来五至十年技术路径与产业化前景
- 企业融资申请书范本及填写指南
- 藏羌碉楼营造技艺传承-洞察及研究
- DB35∕T 1036-2023 10kV及以下电力用户业扩工程技术规范
- 河北食品经营许可现场核查表及核查意见(食品销售)
- 数字智慧方案5445丨企业碳资产管理案例分享北京环境交
- 《奶牛的饲养管理》课件
- 中国文化概论教学课件
- 冷库储存生姜合同范例
- 气管切开套管的选择与更换
- GB/T 9799-2024金属及其他无机覆盖层钢铁上经过处理的锌电镀层
- 半球电压力锅说明书
评论
0/150
提交评论