http://www.cnblogs.com/wlly216/archive/2011/10/05/2199285.html http://www.cnblogs.com/wenmaoyu/archive/2011/07/21/2113124.html