http://wenku.baidu.com/view/38c1df0d844769eae009ed11.html http://www.cnblogs.com/aqbyygyyga/archive/2012/05/13/2498601.html