http://www.cnblogs.com/haippy/archive/2012/05/20/2509329.html http://blog.csdn.net/lk_blog/article/details/7685169