http://blog.csdn.net/zhangnn5/article/details/6857312http://www.cnblogs.com/zhaoyl/archive/2013/01/27/2878832.html