http://www.cnblogs.com/wisekingokok/archive/2011/08/23/2150452.html http://www.cnblogs.com/wisekingokok/archive/2011/08/24/2152004.html