http://www.blogjava.net/lukangping/articles/332806.html http://blog.csdn.net/seminmredoxu/article/details/7000709 http://blog.csdn.net/sfdev/article/details/4056114