以下是jsp页面代码:

Color getRandColor(int fc,int bc){//给定范围获得随机颜色

Random random = new Random();

if(fc>255) fc=255;

if(bc>255) bc=255;

int r=fc+random.nextInt(bc-fc);

int g=fc+random.nextInt(bc-fc);

int b=fc+random.nextInt(bc-fc);

return new Color(r,g,b);

}

%>

//设置页面不缓存

response.setHeader("Pragma","No-cache");

response.setHeader("Cache-Control","no-cache");

response.setDateHeader("Expires", 0);

// 在内存中创建图象

int width=60, height=20;

BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

// 获取图形上下文

Graphics g = image.getGraphics();

//生成随机类

Random random = new Random();

// 设定背景色

g.setColor(getRandColor(200,250));

g.fillRect(0, 0, width, height);

//设定字体

g.setFont(new Font("Times New Roman",Font.PLAIN,18));

//画边框

//g.setColor(new Color());

//g.drawRect(0,0,width-1,height-1);

// 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到

g.setColor(getRandColor(160,200));

for (int i=0;i<155;i++)

{

int x = random.nextInt(width);

int y = random.nextInt(height);

int xl = random.nextInt(12);

int yl = random.nextInt(12);

g.drawLine(x,y,x+xl,y+yl);

}

// 取随机产生的认证码(4位数字)

String sRand="";

for (int i=0;i<4;i++){

String rand=String.valueOf(random.nextInt(10));

sRand+=rand;

// 将认证码显示到图象中

g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成

g.drawString(rand,13*i+6,16);

}

// System.out.println("freedesign:"+sRand);

// 将认证码存入SESSION

session.setAttribute("freedesign",sRand);

// 图象生效

g.dispose();

// 输出图象到页面

ImageIO.write(image, "JPEG", response.getOutputStream());

%>

以下是js调用方法:

function getYanZhengMa(){

//freedesign_image.jsp为以上jsp文件,参数id此处可不传。

//yanzhengma_img为验证码img标签的id

var src = "freedesign_image.jsp?id="+new Date().getTime();

$("#yanzhengma_img").attr("src",src);

}

jsp 图形验证码 imageutils_java_jsp:java:生成图形验证码(纯数字)相关推荐

  1. Java 生成6位纯数字验证码 发短信验证码处使用

    @Testpublic void randomCodeTest() {Random random = new Random();for (int i = 0; i < 10000; i++) { ...

  2. java 验证码 字母_使用java生成字母验证码

    本文实例为大家分享了java生成字母验证码的具体代码,供大家参考,具体内容如下 import java.awt.BasicStroke; import java.awt.Color; import j ...

  3. java生成随机6个数字和字母_java_Java生成含字母和数字的6位随机字符串,本文实例为大家分享了Java生成 - phpStudy...

    Java生成含字母和数字的6位随机字符串 本文实例为大家分享了Java生成6位随机字符串的实现代码,具体内容如下 package com.amos.tools; import java.util.Ar ...

  4. 使用Java生成图形验证码(后端)

    生成图形验证码工具类: VerificationCodeUtil package com.merce.woven.utils;import java.awt.*; import java.awt.im ...

  5. Java生成图形验证码,并传输至前端

    前段时间想要做一个登录的验证码功能,在网上查找了许多资料后实现了,在此记录并巩固一下,其实原理很简单,就是让Java来充当"画笔的角色"来绘制图片,并将图片通过二进制流的方式传输至 ...

  6. java 验证码 算术_java生成图形验证码(算数运算图形验证码 + 随机字符图形验证码)...

    平凡也就两个字: 懒和惰; 成功也就两个字: 苦和勤; 优秀也就两个字: 你和我. 跟着我从0学习JAVA.spring全家桶和linux运维等知识,带你从懵懂少年走向人生巅峰,迎娶白富美! 关注微信 ...

  7. java生成图形验证码

    随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) 首先,需要生成验证码字符串,方式很多,下面提供一种,根据指定源的方式来生成验证码 /*** 使用系统默认字符源 ...

  8. java 生成校验验证码_java生成验证码并进行验证

    一实现思路使用BufferedImage用于在内存中存储生成的验证码图片使用Graphics来进行验证码图片的绘制,并将绘制在图片上的验证码存放到session中用于后续验证 最后通过ImageIO将 ...

  9. java 生成校验验证码_java 验证码生成与校验

    java绘图相关类 验证码工具类 package dt2008.util; import javax.imageio.ImageIO; import javax.servlet.http.HttpSe ...

最新文章

  1. 数学建模学习笔记——分类模型
  2. JVM内存占用情况深入分析,分分钟解开你的疑惑
  3. VTK:AnimateActors用法实战
  4. 云原生那些顶级开源项目,你都用过哪些?
  5. java ee maven_针对新手的Java EE7和Maven项目–第7部分
  6. ABP源码分析三十六:ABP.Web.Api
  7. 商业银行如何进行分布式数据库选型思考
  8. 马斯克加入推特董事会引发员工担忧:可能改变审查规则
  9. 胆道取石内镜篮行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  10. 【计算机视觉-从入门到精通系列】 第三章 立体匹配
  11. 数据库系统概论第五版(第 1 章 绪论)习题答案
  12. 蚂蜂窝VS穷游最世界-自由行类App分析
  13. 全球与中国电动车PTC辅助加热器市场深度研究分析报告
  14. matlab程序特殊符号,MATLAB——matlab特殊符号表【转载】
  15. 浙江大学黄杨思博计算机学院,竺可桢学院2010-2011学年荣誉称号发文名单
  16. word中方框中打钩
  17. ios13 微信提示音插件_ios13微信提示音如何进行更改
  18. Vulkan简介(1)
  19. 服务器正文15:Assert的使用技巧
  20. 低代码助力生产管理:车间管理系统

热门文章

  1. 201409-3-字符串匹配
  2. linux作业1-第二章
  3. 学会asp后再学php,九天学会ASP 之 第二天
  4. 数字后端基本概念介绍<IO Buffer>
  5. Lua基础之coroutine(协程)
  6. 海南中专学计算机的学校有哪些,​海南最好的中专学校有哪些 十大中专学校排名...
  7. html制作我和我的家乡,《我和我的家乡》怎么参与投资?投资流程是什么?
  8. 利用python对图像进行傅里叶变换_Python 实现图像快速傅里叶变换和离散余弦变换...
  9. 什么是php 的精华,PHP精华
  10. 树莓派+Kubernetes