验证码开发有两种方法:

1.自己用代码画一个

2.调用ValidateCode.jar工具包

第一种方式:

创建一个动态web工程

编写一个Servlet,在该Servlet内进行如下操作

验证码开发步骤:

1.在内存中创建一个图片对象

                 int width = 110;
int height = 25;
// 在内存中创建一个图片对象
BufferedImage img = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);

2.创建一个画笔

     //创建一个画笔
Graphics g=img.getGraphics();

3.给图片添加背景颜色

     //给图片添加背景色
g.setColor(Color.PINK);
g.fillRect(1, 1, width-2, height-2);

4.给图片边框一个颜色

 //给边框一个颜色
g.setColor(Color.RED);
g.drawRect(0, 0, width-1, height-1);

5.设置文本样式

 //设置文本样式
g.setColor(Color.BLUE);
g.setFont(new Font("宋体", Font.BOLD|Font.ITALIC, 13));

6.添加文本内容

     //添加文本内容
Random r = new Random();
int position =20;
for(int i=0;i<4;i++){
g.drawString(r.nextInt(9)+" ", position, 20);
position+=20;
}

7.绘制干扰线

 //绘制干扰线(循环九条干扰线)
for(int i=0;i<9;i++){
g.drawLine(r.nextInt(width), r.nextInt(height), r.nextInt(width), r.nextInt(height));
}

8.将图片以流的方式输出客户端

 //将图片以流的方式输出客户端
ImageIO.write(img, "jpg", response.getOutputStream());

第二种方式:

直接使用工具包即可。

     //width:宽度
//height:高度
//codeCount:验证码个数
//lineCount:干扰线数量
ValidateCode vc = new ValidateCode(110, 25, 4, 9);
vc.write(response.getOutputStream());

最新文章

  1. html5上传图片(一)一跨域上传
  2. mac-改造你的terminal
  3. Lagrange插值公式
  4. EF查询视图只得到一条记录
  5. [已解决] windows 80端口被占用
  6. Linux 守护进程和超级守护进程(xinetd)
  7. 强大的JQuery(二)--动画效果
  8. ruby定时脚本
  9. 通过扩展改善ASP.NET MVC的验证机制[实现篇]
  10. bzoj2301: [HAOI2011]Problem b懵逼乌斯反演
  11. Pivot-Header的花式效果
  12. mysql5.7 设置远程访问
  13. ELK 经典用法—企业自定义日志收集切割和mysql模块
  14. P3440 [POI2006]SZK-Schools(费用流)
  15. ClientDataSet使用locate或Filter定位到字段为空值的记录
  16. 漫画 | Redis常见面试问题(一)
  17. python模块-----time
  18. caffe2安装
  19. java-信息安全(十六)-双向认证
  20. 函数后面跟throw

热门文章

  1. Linux高级指令
  2. 域名动态解析到动态IP
  3. python之psutil
  4. 2489 小b和灯泡
  5. 关联tomcat源代码
  6. Python爬虫与数据分析之爬虫技能:urlib库、xpath选择器、正则表达式
  7. jsfl 进入影片 退出影片
  8. groovy 知识集锦
  9. xfs 的一些工具使用
  10. [原创]如果软件在网络磁盘中或移动磁盘中运行时需要解决 exception C0000006 异常问题