http://blog.csdn.net/gavinloo/article/details/6707828 http://www.blogjava.net/rockblue1988/archive/2012/02/29/370977.html