http://www.cnblogs.com/eaglet/category/163857.html http://www.cnblogs.com/think_fish/archive/2011/04/13/2014760.html