http://www.cnblogs.com/cxd4321/archive/2012/07/12/2588110.html http://blog.csdn.net/han_dongwei/article/details/7754328