今天终于把servlet与flex通信搞通了。其实也挺简单,主要是url对应问题。
之前以为实验必须用eclipse(实验环境要求比较高)(也曾有过换myeclipse的想法),结果用它搞web project,总是报错:******is avalible。错因不仅与目录对应问题,还与软件本身有关。
后面得知没有此要求,果断换myeclipse,它搞web project很方便啊,自带tomcat。
好了,进入正题:
先从实例入手,后面解释(网上找了好久,没有满意的原理解释,自己通过实例本身弄懂了大概)
Flex与servlet交互就是客户端与服务器端交互的过程,而交互的媒介是.xml文件。
首先myeclipse下创建web项目,然后在src下创建Myservlet.java文件,创建好后项目目录结构如下:
其中,Myservlet.java代码如下:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.ServletException;
public classMyServlet extendsHttpServlet{
}
Myeclipse自带tomcat,但我还是选择用自己下载的tomcat7,这样的话就得配置tomcat,过程如下:
Window——>preferences——>tomcat,你是哪个版本就选择哪个,并选择你tomcat的安装路径,然后选择enable打开你的tomcat:
在代码下面的servers看到你的tomcat7,配置成功:
然后将上面的Myservlet部署到tomcat中,我这里直接采用tomcat——>右键——>
选择自己的项目,ok,该部分完成。
在该项目webroot/WEB-INF下又web.xml文件,做修改,在标签间加入如下代码:
<</span>servlet>
</</span>servlet-mapping>
保存,服务器端ok。
接下来是客户端,回到flex:
创建servletTest1的flex项目,项目目录如下:
右键属性,进行如下设置(关键):
Web根目录是当你部署到tomcat后的那个文件夹,根url则是访问目录。
该部分只需操作servletTest1.mxml文件:
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
importmx.rpc.events.ResultEvent;
在第一框输入,例如123,点击获取数据,有如下结果:
至此表明交互成功!!
下面对结果做下解释:
首先在flex文件中,过程如下:
这样就开始与后台(服务器)交互,注意url指向http://localhost:8080/test2/Myservlet,
而该地址是怎样和servlet绑定的呢?web.xml文件很关键:
上一篇博客已经介绍原理,这里不再赘述。
这样将url与.class绑定,从而访问url就调用.class处理,在.java中,这样response:
与结果符合!!成功!!
在做时,电脑运行不动了,总是卡!对于我这个急性子真是摧残!不过也算对我的一种磨练!
真心感觉我们这种IT人办事效率取决于电脑速率啊,有木有!!!
什么时候换换,或升级下配置!!
这是初步,还得继续整合~~
keep trying!!