http://www.cnblogs.com/dotey/archive/2011/05/10/2041966.html http://blog.csdn.net/zkdemon/article/details/7066807