作者:L_J
在你进行账号的注册时是否发现了很多的界面上会有一个验证码叫你输入?那么他是怎么是怎么实现的呢?你在页面上看到的验证码一般都是以一张图片的形式展现在页面上所以又叫图形验证码 常见的图行验证码有哪些呢?
1.随机的数字及字母组合【一般常见的长度为4-6位】
2.随机成语【用成语当验证码】
3.简单运算 【给你一个简单的加减乘除运算叫你求结果】
这里呢我用第一种做演示你们看完后可以自行试着写一下后面两种。这里是基于web的图形化界面获取验证码。
一、绘制验证码
代码如下:
我在这简单用自己的话讲一下这个代码的编写原理 。既然验证码是一张图片那么就得有一张图片,那这张图片又是需要可以改变的所以说就是一张动图。那么Java中常见的图片对象有哪些呢?
1.Image指定一个图片的路径
2.ImageIocn指定一个图标的路径
3.BufferedImage缓冲图片(动图)
所以说很明显我们用什么?BufferedImage既然图片有了那验证码是不是就是图片上的字呢?字怎么来?在现实生活中字都是写出来嘛,在这里的字就不叫写了叫画既然是画那么就有工具去画呗什么工具:画笔工具Graphics 通过BufferedImage拿到 既然有画笔了那是不是就可以画了当然可以但是呢你不能直接画在图片上你可以先画一个矩形 然后再画到矩形上面去。注意画之前你要先给画笔设置颜色,最后一定不要忘记存放到响应中去 ,响应的输出流并不是自己创建的而是响应对象提供的。
@WebServlet("/code")
public class CodeServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//创建缓图片对象 BufferedImage(图片的宽,图片的高,设置图片的颜色类型)
BufferedImage bf=new B