http://blog.csdn.net/s_ongfei/archive/2007/09/04/1771618.aspx http://www.blogjava.net/zhip/archive/2007/05/17/118182.html