http://blog.csdn.net/dba_huangzj/article/details/27652857 http://blog.csdn.net/zhaowenzhong/article/details/6239445