http://blog.csdn.net/u010822824/article/details/50412665 https://www.cnblogs.com/08shiyan/archive/2011/07/15/2106954.html