http://www.cnblogs.com/bluescorpio/archive/2010/06/08/1752886.html http://www.cnblogs.com/yupeng/p/3362031.html