http://www.cnblogs.com/mlj318/archive/2013/01/23/2872932.html http://www.cnblogs.com/mlj318/archive/2013/01/25/2873143.html