http://www.cnblogs.com/hapcn/articles/1297254.html http://www.cnblogs.com/yuanyue821221/archive/2008/04/12/1150725.html