http://www.cnblogs.com/rollenholt/archive/2011/08/28/2156357.html http://www.jb51.net/article/36130.htm