http://blog.csdn.net/jkh753/article/details/12581527 http://blog.csdn.net/johnnycode/article/details/7678083 http://www.cnblogs.com/longqi293/archive/2012/06/19/2554801.html