http://blog.21ic.com/user1/5047/archives/2010/80933.html http://www.cnblogs.com/stonecrazyking/archive/2006/09/23/512552.html