http://blog.csdn.net/hdfyq/article/details/6704924 http://blog.csdn.net/billdai/article/details/6757550