http://www.cnblogs.com/codelove/archive/2011/07/20/2111706.html http://www.2cto.com/kf/201107/96818.html