首 页文章中心下载中心繁體中文
设为首页
加入收藏
联系我们
您当前的位置:开源盛世-源代码下载网 -> 文章中心 -> GIS 专区 -> 文章内容 退出登录 用户管理
栏目导航
· VC++专区 · V B 专区
· GIS 专区 · PDA 专区
· 其他编程 · 网站开发类
· 数据库类 · 软件应用
· 网络安全 · 论文专区
· 综合资讯
热门文章
· Tab Control控件使用...
· 学生档案管理系统
· [图文] 排列组合公式
· UTF-8与GB2312之间的...
· DirectShow下载安装...
· Virtual PC 在PAE模...
· Windows2000终端服务...
· MapInfo上的GIS系统...
· Mapbasic参考手册索...
· MapX应用开发中文讲...
相关文章
· ArcGIS在菜单中调用...
· [图文] Server Java开发--B...
· ArcGIS Server Java...
· ArcGIS Server Java...
· ArcGIS Server Java...
· [图文] ArcGIS Server Java...
· ArcGIS Server Java...
· ArcGIS Server Java...
· [图文] ArcGIS Server Java...
· ArcGIS Server Java...
ArcGIS Server Java讲座--如何在用JSF在服务器端处理Ajax请求
作者:不详  来源:vscodes.com整理  发布时间:2007-6-26 17:26:06  发布人:Polaris

减小字体 增大字体

服务器端的处理才是整个事件的Key,那么我们来看看整个请求,回复的过程,我们通过下面的图看看我们服务器端的代码怎么样才可以plug in进去:

Snap1.jpg (38.59 KB)

看了这个图您肯定已经明白了,我们有机会得到客户端发送过来的HTTP请求,得到这个请求,得到请求里面的参数,我们就可以捋起袖子,大干一番了。
我们用什么方式去处理呢,最简单的一个方法是自己写一个servlet,在servletDopost方法里面,写上处理这个请求的代码,并且把结果以XML的方式返回回去,那么我们这里用一个简单的例子:


[Copy to clipboard] [ - ]
CODE:
                        throws java.io.IOException {

  String action = req.getParameter("action");
  String item = req.getParameter("item");
  
  if ((action != null)&&(item != null)) {

    // Add or remove items from the Cart
    if ("add".equals(action)) {
      cart.addItem(item);

    } else if ("remove".equals(action)) {
      cart.removeItems(item);

    }
  }

  // Serialize the Cart's state to XML
  String cartXml = cart.toXml();

  // Write XML to response.
  res.setContentType("application/xml");
  res.getWriter().write(cartXml);
}

   这对于了解服务器端编程的人来说,是最简单不过的了。当然,我们用了JSF框架,肯定不会再通过Servlet技术去做这件事情。我们这里用JSFPhaseListener进行处理。什么是PhaseListener,我们来看一下PhaseListenerJavaDoc


[Copy to clipboard] [ - ]
CODE:


extends java.util.EventListener, java.io.Serializable


An interface implemented by objects that wish to be notified at the beginning and ending of processing for each standard phase of the request processing lifecycle.


   原来,这个接口捕捉到每个Request的声明周期,在请求开始处理和请求处理结束时我们可以插入我们自己的代码。这个接口的两个最重要的方法如下:


[Copy to clipboard] [ - ]
CODE:
          Handle a notification that the processing for a particular phase has just been completed.  void beforePhase(javax.faces.event.PhaseEvent event)
          Handle a notification that the processing for a particular phase of the request processing lifecycle is about to begin.

  处理结束和处理开始两个方法,我们可以在这两个方法里面写入我们自己的代码,对用户过来的请求进行处理。
   比如,我们可以在afterPhase方法里面,插入下面的代码对数据进行处理:


[Copy to clipboard] [ - ]
CODE:
    ExternalContext externalContext = facesContext.getExternalContext();
Map paramMap = externalContext.getRequestParameterMap();

通过paramMap里面可以得到所有的参数,当然,我们并不是对每一个请求都会进行处理,所以,在客户端Javascript发送Ajax请求得时候,可以添加一个自定义的参数,比如我们前面文档中的ajaxdemo=ajaxdemo参数,这样我们可以判断一下当前是不是我们要处理的请求:



[Copy to clipboard] [ - ]
CODE:

if (! AJAX_DEMO.equals(paramMap.get(AJAX_DEMO)))
      return;

   接下去的代码,就可以处理我们的各种各样的请求了,我们在这里要举的例子是如何得到当前地图的比例尺。下次讲座再深入探讨吧。

End of《ArcGIS Server Java讲座--如何在用JSF在服务器端处理Ajax请求》

[] [返回上一页] [打 印] [收 藏]
 
∷相关“ArcGIS Server Java讲座--如何在用JSF在服务器端处理Ajax请求”文章评论∷
(评论内容只代表网友观点,与本站立场无关!) [更多评论...]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 网站目录 鄂ICP备06007162
开源盛世 版权所有Copyright © 2003-2005 VSCodes.Com. All Rights Reserved.