java制作简单验证码功能

网友投稿 259 2023-03-19


java制作简单验证码功能

本文实例为大家分享了java制作简单验证码的具体代码,供大家参考,具体内容如下

在这里我们需要用到java的画笔工具,所以我们需要导入以下包

import="java.util.*,java.awt.*,java.awt.image.*,javax.imageio.*"

然后我就使用java脚本来实现一个小小的验证码

<%@ page contentType="image/jpeg; charset=utf-8"

language="java" import="java.util.*,java.awt.*,java.awt.image.*,javax.imageio.*"

pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<%!

//获取随机颜色

public CEPgKcEAbolor getColor(){

Random random = new Random();

//使用rgb()随机产生颜色

int r = random.nextInt(256);

int g = random.nextInt(256);

int b = random.nextInt(256);

return new Color(r,g,b);

}

//获取随机数字 产生一个4位数

public String getNum(){

String str = "";

Random random = new Random();

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

str += random.nextInt(10); //0-9

}

return str;

}

%>

<%

/* 清除缓存 */

response.setHeader("pragma", "mo-cache");

response.setHeader("cache-control", "no-cache");

response.setDateHeader("expires", 0);

//产生矩形框

BufferedImage image = new BufferedImage(80,30,BufferedImage.TYPE_INT_RGB);

//获取画笔工具

Graphics g = image.getGraphics();

//设置矩形框的颜色

g.setColor(new Color(200,200,200));

//设置坐标和宽高

g.fillRect(0, 0, 80, 30);

//随机产生干扰线

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

Random random = new Random();

int x = random.nextInt(80);

int y = random.nextInt(30);

int x1 = random.nextInt(x + 10);

int y1 = random.nextInt(y + 10);

//设置随机颜色

g.setColor(getColor());

//画出来

g.drawLine(x, y, x1, y1);

}

//字的颜色和数字

g.setFont(new Font("Microsoft YaHei",Font.BOLD,16));

g.setColor(Color.BLACK);

//获取随机数字

String checkNum = getNum();

//给字拼接空格

StringBuffer sb = new StringBuffer();

for(int i = 0;i < checkNum.length();i++){

sb.append(checkNum.charAt(i) + " ");

}

//画出数字

g.drawString(sb.toString(), 15, 20);

//存入session域中

session.setAttribute("CHECKNUM", checkNum); //例如1010

//将图像以jpeg的形式通过字节流输出

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

//清除缓存

out.clear();

//放入body中

out = pageContext.pushBody();

%>

结果如下:


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:api网关设计(api网关管理系统)
下一篇:Kafka简单客户端编程实例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~