http://blog.csdn.net/zimingjushi/article/details/6573563 http://blog.csdn.net/dg1683wen/article/details/6861044