http://www.cnblogs.com/xiaoQLu/archive/2011/03/26/1996344.html http://www.cnblogs.com/xiaoQLu/archive/2012/04/28/2474443.html