http://www.blogjava.net/wolfman09/archive/2009/05/01/268536.html http://www.cnblogs.com/liubiqu/archive/2006/06/16/427540.html