http://www.blogjava.net/DLevin/category/54912.html http://www.cnblogs.com/caoyuanzhanlang/p/3534846.html