http://blog.csdn.net/wmqi10/article/details/16850479http://blog.csdn.net/jasonblog/article/details/28282147