http://blog.csdn.net/chjk1/archive/2008/06/01/2488450.aspx http://blog.csdn.net/rbagglo/archive/2008/06/01/2392750.aspx