手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Xml编程>列表

如何使用XML实现多渠道接入网站的构架

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

  /**
   * Router存储的树front
   */
   private static java/util/Hashtable.java.html" target="_blank">Hashtable QueuePairFront = null;
  /**
   * Router存储的树back
   */
   private static java/util/Hashtable.java.html" target="_blank">Hashtable QueuePairBack = null;
/**
   * 本router的index号码
   */
   private long routeIndex = 0;
/**
   * router的设置
   */
   private RouterDefine define = null;  
/**
   * 用于判断是路由的起回点
   */
   private java/lang/String.java.html" target="_blank">String action = "";
   /**
   *此变量只是用于在routeto方法中申请新的class 
   */
   private java/lang/String.java.html" target="_blank">String classname = "";
    /**
   */
    public XMLRouter(long index) 
    {
     routeIndex = index;
    }
    /**
   * 路由
   * @throws Exception
   * @roseuid 3F1616BD0186
   */
    public void routing(Env env) throws RouterException, java/lang/Exception.java.html" target="_blank">Exception 
    {
      /*如果为起点*/
     if( action.equalsIgnoreCase( RouterConstant.CFG_FUNC_ROUTETO ) )  
     {
       ……
     }
     /*如果为返回点*/
     else if( action.equalsIgnoreCase( RouterConstant.CFG_FUNC_ROUTEBACK ) )
     {
     ……
     }
     /*否则为错误*/
     else
       throw new RouterException("Set Router action error.");
    }


   /**
   * 读取本Router的id号.
   * @return long
   */
   public long getIndex()
   {
      return routeIndex;    
   }

/**
   * 清除所有对象.
   * @throws RouterException
   */
   public void clear() throws RouterException
   {
     QueuePairFront.remove(new java/lang/Long.java.html" target="_blank">Long(routeIndex));
     QueuePairBack.remove(new java/lang/Long.java.html" target="_blank">Long(routeIndex));
     /*系统回收*/
     java/lang/System.java.html" target="_blank">System.runFinalization();     
   }

   /**
   * 设置本Router的设置.
   * @param def
   * @throws RouterException
   */
   public void setDefine(RouterDefine def) throws RouterException
   {
     define = def;  
   } 
   /**
   * 设置action的值
   * @param actionName
   * @throws RouterException
   */
   public void setAction( java/lang/String.java.html" target="_blank">String actionName )
   {
     action = actionName;    
   }
}

  Service类

以下是引用片段:
package com.web.common;
import com.web.platform.Exception.RouterException;
/**
* Service的父类,abstract 
*/
public abstract class RouteService 
{
  /**
   */
  public RouteService() 
  {
  }
  /**
   * routeTo方法,是交易的起点。
   * @param env
   * @throws RouterException
   */
  public abstract void routeto(Env env) throws RouterException;
  /**
   * routeBack,交易的结束点,
   * @param env
   * @throws RouterException
   */
  public abstract void routeback(Env env) throws RouterException;
  /**
   * routeaccept方法,是交易的接收点,也是routeto的接收函数,
   * routeaccept为被动交易对象的主要处理函数
   * @param env
   * @throws RouterException
   */
  public abstract void routeaccept(Env env) throws RouterException;  
  /**
   * routing方法,是Service对外的接口函数
   * @throws RouterException
   */
  public abstract void routing() throws RouterException;

  接下来则需要实现所有的Services的类了,这里就不做介绍了.

  六.说明

  这个Router到目前为止只能实现同步的交易, 暂时不支持异步的交易,但是由于对Router使用了Composite的模式设计的,实现异步交易也是可以扩展的,这里不做详细分析.

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!