精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-06
最近考虑项目是不是要引进Flex技术,所以花一周研究Flex的几大方面,先给出自己的一点体会[很浅],希望交流!
今天的富客户端,无论ajax,flex,javafx,sliverlight!
都不可回避的问题是什么???
客户端[可以看做新时代的web层]与服务器[看做新时代的服务组件]怎么交互. 最好是客户端,服务器端有容器帮我们解决,让我们写ajax,flex想struts2 freemarker一样简单!
所以: Flex在客户端有Cairngorm 在服务器端有blazeDs 不过如果真的用还是建议自己简化封装blazeDs就是java的代码,以servlet作为入口,如果用过axis,cxf,呵呵是不是就 是 soap和AMF区别,那就是编码,解码器不同[引用通信术语],思考!
必须考虑的问题是什么?
通信的效率,通信的次数,编码解码的效率,UI渲染的效率[Ext渲染,与服务器交换次数,数量,javaeye的人应该生有体会,]
我们来简单看一个,flex+tomcat [blazeDa弱化,只是java的一个框架类似struts,axis]的例子,生有不要强化blazeDs需要弱化,因为知道AMF协议自己可以做个blazeDs 呵呵AMFPHP就是哈!
简单看哈Flex端代码: <?xml version="1.0" encoding="utf-8"?> <mx:Button label="Get Data" click="srv.getLanguages()"/>
http://localhost:8080/blazeDsTomcat/blazeDs/bobo这个很重要哈,看看服务器web.xml中怎么配置的哈?
<servlet> <servlet-mapping>
哈哈Flex端请求到了flex.messaging.MessageBrokerServlet这个不就是Servlet与axis,struts有何区别 唯一不同是http承载的数据格式不同,需要不同的解码与编码器,一般内置了哈,开发是透明的!所以sping就是想达到开发flex与传统开发java没有多大区别,是开发值关心Flex ui 与event 与pojo
那么?MessageBrokerServlet类怎么处理请求,猜想肯定找对应的类解码AMF数据然后调用处理者[我们的业务组件] 源码: String contextPath = req.getContextPath(); Endpoint endpoint = null; 呵呵根据请求找到对应的endpoint ,然后解码----调用业务组件---编码 返回Flex端
看看服务器端代码与配置[消除了网上很多例子的融于代码]
上面web.xml可以看到初始化了services-config.xml文件类似spring,一切都差不多,我们看看services-config.xml文件是什么? 如下 <?xml version="1.0" encoding="UTF-8"?> <services> <?xml version="1.0" encoding="UTF-8"?> <adapters> </service> 也简单哈,大家仔细体会哈
blazeDs 是不是只是个axis,xfire这样差不多的[比axis,xfire还是轻量点哈]的一个接受请求,解码,调用服务[我们的],编码,就是个java的Servlet
所以关键是什么
客户端运行语言as----编码 为X[amf]------HTTP---------服务器接受请求派发[servlet]-----X解码----调用服务----java编码为X---返回客户端---X解码为客户端语言的类型 这个过程.,怎么做 1.都自己做 [会怎么样],想想javade发展 sevlet--jsp--srtuts1 webwork jsf 2.容器做 通信 编码解码 3框架类库 框架类库与容器概念今天不是很明确了
估计大家 很少几个能 看完的,不喜欢写博客就是业务说不清 还是喜欢 直接站在讲台讲课哈,可是 没有这样的好机会
代码见附件,2部分 flex java 那过去就可以跑! localClientFlex.rar是flex的一个MXML需要你机器有Flex环境 localFlexClient_swf.rar包含flash直接可以运行但是要考虑安全设置
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 2480 次