http://www.cnblogs.com/dcba1112/archive/2011/05/01/2033805.html http://blog.csdn.net/ithomer/article/details/8843813