基于flex4技术从零开发flex博客系统 : 2 与servlet服务端交互
2009-05-05 12:04:27 来源:WEB开发网我用URLLoader向服务端发起一个http get请求,参数为name,并对URLLoader注册了一个事件监听,监测其complete事件,该事件发生在请求返回数据之后,而URLloader的data属性记录了返回结果。URLLoader在实例化时,如果发现已有URLRequest做为构造参数传入,它会自动调用load方法,故而此处无须再显式调用load方法。
思考问题2:如果在Index.mxml中,请求的代码,写成如下模样,又当如何:
var request : URLRequest = new URLRequest("http://localhost:8080/gapp_flexblog/hello");
request.method = URLRequestMethod.POST;
request.data = new URLVariables("name=sban");
区别在于第二种写法使用的是http post请求。
运行flex客户端,效果如下:
为了验证思考问题1,我修改了web.xml文件,让/gapp_flexblog/hello直接映射到sban.flexblog.server.HelloWorldServlet,部分代码如下:
<servlet-mapping>
<servlet-name>sban.flexblog.server.HelloWorldServlet</servlet-name>
<url-pattern>/gapp_flexblog/hello</url-pattern>
</servlet-mapping>
运行,Oh My God!报出了No such Servlet错误。看来定义从url到servlet的映射时,必须要有servlet name做为中间人。
为了验证思考问题2,我修改了Index.mxml代码,用post方法发出请求,报出了error。error信息不再粘出,阅者可自行测试。而如果我在HelloWorldServlet中覆盖了doPost方法后,便可以了。
flex与server通讯,http并不是最好的选择。amf相对http协议有更高的通讯效率。下一课我计划学习一下如何用remoting与server通讯。
系列文章:
flex选修课之第一课:flex4开发环境配置与第一个应用程序hello world
flex选修课之第三课:使用Remoting服务
更多精彩
赞助商链接