前段时间做一个东西,不知道为什么帮派里的兄弟要用HttpServices + JSP,问我怎么才能获取到客户端的IP地址呢?我就看了一下。结果搞定。
不废话。
flex httpservices 的基础内容
<mx:HTTPService id=”indexService” url=”http://localhost:8080/getIP.jsp” resultFormat=”xml” result=”GetDetailsInfo()” />
其 中,id就是在这个mxml文件中使用的标示,我认为相当于对一个类的实例化,url就是通过httpservice调用的jsp服务的地址,一 般同mxml放在同一个目录下面即可。ResultFormat是当调用了这个httpservice的时候返回的结果集,(注意:如果返回的结果集是进行数据绑定的话,一定要删除ResultFormat这个属性,否则不会显示绑定的内容,不过不需要绑定的话,一定要加上ResultFormat这个属性。否则也不能得到httpservice的结果,jsp文件返回的画面一定是xml的形式,应为flex只认xml格式的数据。)
首先:
jsp文件代码:
<!--<%@ page contentType="text/xml; charset=UTF-8" %>-->
<!--<?xml version="1.0" encoding="utf-8"?>-->
<systemdata clientIP='<%=request.getRemoteHost()%>[<%=request.getRemoteAddr()%>]'/>
将此jsp文件放到服务器的tomcat安装目录下的webapp中的root文件夹下。启动tomcat服务。
flex前端代码:
<!--以下为获取客户端IP-->
<mx:HTTPService id="dsClientIP"
url="http://localhost:8080/getIP.jsp"
result="onResult(event)"
resultFormat="e4x"/>
private function onResult(oEvent:ResultEvent):void
{
var xmlResult:XML = XML(oEvent.result);
sIp = xmlResult.@clientIP;
}