http://www.cnblogs.com/CaiNiaoZJ/archive/2011/08/12/2136598.html http://blog.csdn.net/liubinstud/article/details/6134125