flex-servlet交互

今天终于把servletflex通信搞通了。其实也挺简单,主要是url对应问题。

之前以为实验必须用eclipse(实验环境要求比较高)(也曾有过换myeclipse的想法),结果用它搞web project,总是报错:******is avalible。错因不仅与目录对应问题,还与软件本身有关。

后面得知没有此要求,果断换myeclipse,它搞web project很方便啊,自带tomcat

好了,进入正题:

先从实例入手,后面解释(网上找了好久,没有满意的原理解释,自己通过实例本身弄懂了大概)

Flexservlet交互就是客户端与服务器端交互的过程,而交互的媒介是.xml文件。

首先myeclipse下创建web项目,然后在src下创建Myservlet.java文件,创建好后项目目录结构如下:

flex-servlet交互

其中,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{ 

   privatestaticfinallongserialVersionUID = 1L; 

        public MyServlet() {    

            super();

        

        protected void doGet(HttpServletRequestrequest,HttpServletResponse response) throws ServletException, IOException {    

            String result = getHelloWorld(request, response);    

            PrintWriter p = response.getWriter(); 

            response.setContentType("text/xml"); 

            p.print(result); 

            System.out.println("…………………返回结果…………………………………" + result)

      }    

        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response);    

       

        private String getHelloWorld(HttpServletRequest request,    

                HttpServletResponse response) 

       

            String backString; 

            String methodName = request.getParameter("name"); 

            backString = "Hello "+ methodName + "! "

            return backString

   

Myeclipsetomcat,但我还是选择用自己下载的tomcat7,这样的话就得配置tomcat,过程如下:

Window——>preferences——>tomcat,你是哪个版本就选择哪个,并选择你tomcat的安装路径,然后选择enable打开你的tomcat

flex-servlet交互

在代码下面的servers看到你的tomcat7,配置成功:

flex-servlet交互

然后将上面的Myservlet部署到tomcat中,我这里直接采用tomcat——>右键——>

flex-servlet交互

选择自己的项目,ok,该部分完成。

在该项目webroot/WEB-INF下又web.xml文件,做修改,在标签间加入如下代码:

<</span>servlet> 

        <</span>servlet-name>MyServlet</</span>servlet-name> 

    <</span>servlet-class>MyServlet</</span>servlet-class> 

    </</span>servlet> 

    <</span>servlet-mapping> 

        <</span>servlet-name>MyServlet</</span>servlet-name> 

        <</span>url-pattern>/MyServlet/*</</span>url-pattern> 

</</span>servlet-mapping>

保存,服务器端ok

接下来是客户端,回到flex

创建servletTest1flex项目,项目目录如下:

flex-servlet交互

右键属性,进行如下设置(关键):

flex-servlet交互

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; 

  protected functiongetText_clickHandler(event:MouseEvent):void 

 

              service.method = "get"

              service.resultFormat="text"

              service.useProxy=false

              service.addEventListener(ResultEvent.RESULT, resultHandler); 

              var obj:Object = new Object; 

              obj.name = txt1.text;

              service.send(obj); 

           

            private functionresultHandler(event:ResultEvent):void 

           

                var result:String = String(event.result); 

                txt2.text = result; 

           

  (下面的代码是紧接着上面的,但在这里编辑出来总是显示乱码,所以以图片显示了)

flex-servlet交互

 保存,运行(!在运行之前,一定要打开myeclipsetomcat,否则就会访问不到)就可得到如下页面:

flex-servlet交互

在第一框输入,例如123,点击获取数据,有如下结果:

flex-servlet交互

至此表明交互成功!

下面对结果做下解释:

首先在flex文件中,过程如下:

flex-servlet交互

这样就开始与后台(服务器)交互,注意url指向http://localhost:8080/test2/Myservlet

而该地址是怎样和servlet绑定的呢?web.xml文件很关键:

flex-servlet交互

上一篇博客已经介绍原理,这里不再赘述。

这样将url.class绑定,从而访问url就调用.class处理,在.java中,这样response:

flex-servlet交互

与结果符合!!成功!!

flex-servlet交互

在做时,电脑运行不动了,总是卡!对于我这个急性子真是摧残!不过也算对我的一种磨练!

真心感觉我们这种IT人办事效率取决于电脑速率啊,有木有!!!

什么时候换换,或升级下配置!!


这是初步,还得继续整合~~

keep trying!!


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值