http://developer.51cto.com/art/200905/124873.htm http://www.cnblogs.com/zkxp/archive/2008/04/28/1173746.html http://www.cnblogs.com/peterzb/archive/2009/05/29/1491891.html