http://www.blogjava.net/xmatthew/articles/185673.html http://blog.csdn.net/diy8187/archive/2009/07/22/4369132.aspx