利用JSP在Web页面中显示随机数字验证码图片

原创 2004年09月30日 10:49:00

代码如下:

<%@ page contentType="image/jpeg" import="java.awt.*,
java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
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(255,255,255));
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);
}

// 将认证码存入SESSION
session.setAttribute("rand",sRand);

// 图象生效
g.dispose();

// 输出图象到页面
ImageIO.write(image, "JPEG", response.getOutputStream());
%>

如果有什么问题,可与我联系: webmaster@bcxy.com    

JavaWeb 输出随机验证码图片

Servlet 代码: package zhang.response; import java.awt.Color; import java.awt.Font; import java.awt.G...
  • Zhang_hongchao
  • Zhang_hongchao
  • 2015年11月18日 13:47
  • 714

web 动态随机验证码图片生成【最新】

随机图片校验码验证码生产包,用于生产动态图片校验码,验证码图片生成
  • Botaruibo
  • Botaruibo
  • 2016年10月18日 15:34
  • 452

JavaWeb项目中生成验证码

在项目中使用servlet随机生成验证码 在jsp页面中验证码图片加入img标签,src为生成验证码的servlet的url; 在servlet中生成随机验证码 public class AuthC...
  • u013360850
  • u013360850
  • 2016年09月18日 20:14
  • 2069

web登录:随机验证码的设计和实现

本文特点: 针对验证码的生成做了很多算法优化和调整,支持一个典型的验证码生成和验证流程,利用缓存服务器解决聚群部署架构中数据同步的问题。 基本需求: 登录页面显示一个随机验证码图片、有背景干扰...
  • ClementAD
  • ClementAD
  • 2015年09月28日 19:35
  • 11488

Web用户登录---验证码的设计与实现

在开发中验证码是比较常用到有效防止这种问题对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试的方式。 验证码生成步骤: 1、获得随机生成的颜色,画出随机线条生成背景底。 2、String c...
  • ljheee
  • ljheee
  • 2017年05月29日 09:31
  • 1260

web开发验证码生成和验证码校验

首先创建生成验证码的java实体类,这个类是Struts的action类型的。 如下:CheckImgAction.javapackage cn.edu.imau.shop.user.action;...
  • broccoli2
  • broccoli2
  • 2017年06月14日 12:12
  • 103

利用JSP在Web页面中显示随机数字验证码图片

注 : 转自http://blog.csdn.net/ezerg/archive/2004/09/30/121469.aspx代码如下:java.awt.image.*,java.util.*,jav...
  • youlin
  • youlin
  • 2004年09月30日 13:24
  • 1240

JSP彩色验证码 字母+数字

本文说明了如何在JSP中生成彩色的由数字加字母随机组成的验证码,以及不刷新页面改变验证码的方法.本文参考了网友的一些代码,并在此基础上做了一些修改!产生验证码图片的文件image.jsp  Rando...
  • wlwqw
  • wlwqw
  • 2008年01月16日 12:08
  • 1766

登录随机验证码

1.java类源码package code; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.J...
  • u010334221
  • u010334221
  • 2016年04月10日 20:53
  • 239

在Web中动态生成验证码

为了防止某些用户使用软件进行登录和发布信息,很多网站在用户登录或者发布信息时,都要求用户输入验证码,验证码通常是以一幅图片的形式显示的,用户按照图片中显示的数字或字母依次输入,服务器端将对用户的输入和...
  • zhanngle
  • zhanngle
  • 2007年12月03日 11:11
  • 4678
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用JSP在Web页面中显示随机数字验证码图片
举报原因:
原因补充:

(最多只允许输入30个字)