正 文

面向服务的用户界面


www.7dspace.com  更新日期:2005-11-30 1:31:51  七度空间


  在处理请求期间,Portlet 容器调用 Portlet 的:

  processAction 方法来通知 Portlet 用户行为。每个客户机只有一个基于用户的行为被触发。Portlet 可以发出一个重定向、改变它的 Portlet 模式或窗口状态或者更改它的状态。
  render 方法来请求标记片段。

  Portlet 还可以调用更多的服务来执行所需的功能。清单 1 示例使用 Web 服务来检索和显示特定用户的股票报价。

  清单 1. 股票报价 Portlet 代码示例

public class StockQuotePortlet extends GenericPortlet {

 private ServiceManager serviceManager;

 public void init(PortletConfig config) throws PortletException {
  serviceManager = new ServiceManager();
 }

 public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
  
         response.setContentType("text/html");   

         // invoke autogenerated wrapper to locate service
  NetXmethodsServicesStockquoteStockQuoteServiceLocator loc =
   new NetXmethodsServicesStockquoteStockQuoteServiceLocator();
  NetXmethodsServicesStockquoteStockQuotePortType port =
   loc.getNetXmethodsServicesStockquoteStockQuotePort();

  // loop through all stock quotes the user is interested in
  PortletPreferences prefs = request.getPreferences();
  Iterator quoteKeys = prefs.getMap().keys().iterator();
  String key;
  Float quote;
  StockBean quoteBean = new StockBean();
  while ( quoteKeys.hasNext() ) {
   key = quoteKeys.next();
       quote =  port.getQuote (key);
   quoteBean.add(key, quote);
  }

  request.setAttribute("StockQuoteBean", quoteBean);

  // render stock quotes using a JSP      
        PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher("jsp/View.jsp");
        rd.include(request,response);

 }
}

  这一部分演示了您可以如何使用 Java Portlet 规范来实现 UI 服务,以及您的 Portlet 可以如何调用其他 Web 服务。下一部分将展示如何使用 WSRP 将 UI 作为 Web 服务发布。

      用于远程 Portlet 的 Web 服务

  WSRP 是远程呈现 Portlet 的标准,使门户能够从多个源聚合内容。WSRP 将 Web 服务的集成能力扩展到面向表示的组件,并将视图层公开为跨平台、实现语言和供应商共享。可以发现内容和应用程序提供者并将其插入遵循标准的应用程序中,而不必进行任何额外的编程工作。

  典型的 Web 服务使用远程表示范例,这意味着所有的视图逻辑在客户机上执行,而应用程序逻辑和数据层(控制器和模型)则驻留于服务器上。与此相反,WSRP 使用分布式范例将客户机和服务器的表示分开。

图 1. 面向数据的 Web 服务和 WSRP 面向表示的 Web 服务的比较

3页,页码:[1] [2] [3] 

上一篇:Word入门动画教程37:文本的选定
下一篇:使用ActiveBPEL编排、控制Web Services
作者:Stefan Hepper  来源:developerWorks 中国 ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐