http://julyboxer.javaeye.com/blog/75445 http://www.blogjava.net/georgehill/archive/2005/05/20/4993.html http://blog.csdn.net/QJC13/archive/2008/03/19/2197311.aspx