http://www.cnblogs.com/zhangronghua/archive/2009/05/21/1486572.html http://www.cnblogs.com/xclw/archive/2009/09/29/1576436.html