http://www.blogjava.net/zJun/archive/2006/06/28/55511.html
http://www.cnblogs.com/alipayhutu/archive/2012/06/21/2558249.html
http://blog.csdn.net/azheng270/article/details/2173430/