参考:http://blog.csdn.net/jintao_ma/article/details/51253356
http://www.cnblogs.com/rollenholt/p/3776923.html