http://www.blogjava.net/rosen/archive/2010/05/21/321575.html http://www.cnblogs.com/wangtianxj/archive/2010/10/19/1855751.html