http://blog.csdn.net/fairyeye/article/details/6607981 http://www.cnblogs.com/lhj588/archive/2011/10/03/2198472.html