现在好多网站都是通过动态的生成验证码来防止恶意注册,投票等,简单的分析了一下,大概的实现原理是这样的:
用一个JSP/Servlet来生成图像,可以用java.awt.image来实现:
![](http://blog.yesky.com/Blog/Images/OutliningIndicators/None.gif)
![](http://blog.yesky.com/Blog/Images/OutliningIndicators/None.gif)
![](http://blog.yesky.com/Blog/Images/OutliningIndicators/None.gif)
![](http://blog.yesky.com/Blog/Images/OutliningIndicators/None.gif)
这样很容易的就生成了一个内存中的图像,注意,是在服务器的内寸中,要把它传送给客户端,就要把它作为response来传送:
![](http://blog.yesky.com/Blog/Images/OutliningIndicators/None.gif)
然后把验证码的字符串通过session来传递给需要验证验证码的网页就可以了
在需要显示验证码图像的地方加入:
![](http://blog.yesky.com/Blog/Images/OutliningIndicators/None.gif)
就可以了,不过最后也是最重要的一点就是一定要把下列语句加入到网页头部来防止浏览器会缓存网页:
![](http://blog.yesky.com/Blog/Images/OutliningIndicators/None.gif)
![](http://blog.yesky.com/Blog/Images/OutliningIndicators/None.gif)
![](http://blog.yesky.com/Blog/Images/OutliningIndicators/None.gif)
![](http://blog.yesky.com/Blog/Images/OutliningIndicators/None.gif)