http://www.blogjava.net/sxyx2008/archive/2010/07/14/326028.html http://www.cnblogs.com/ITEagle/archive/2010/04/23/1718365.html