http://www.cnblogs.com/coderland/p/5902878.html http://blog.csdn.net/chenleixing/article/details/44573495