[参考] http://www.javaeye.com/topic/366591
http://blog.csdn.net/liuzhengkang/archive/2008/10/24/3137332.aspx