http://blog.csdn.net/liweisnake/article/details/8470285 http://www.cnblogs.com/xing901022/p/4574961.html