加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java 生成验证码

发布时间:2020-05-24 22:41:42 所属栏目:Java 来源:互联网
导读:java 生成验证码

下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。

脚本之家小编现在分享给大家,也给大家做个参考。

/**
*
*/
packagecom.becom.dkyd.webapp.util;
importjava.awt.Color;
importjava.awt.Font;
importjava.awt.Graphics2D;
importjava.awt.image.BufferedImage;
importjava.io.IOException;
importjava.util.Random;
importjavax.imageio.ImageIO;
importjavax.servlet.ServletException;
importjavax.servlet.ServletOutputStream;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;
importcom.becom.dkyd.common.Constant;
publicclassRandomCodeServletextendsHttpServlet
{
/**
*serialVersionUID
*/
privatestaticfinallongserialVersionUID=5916019367240722024L;

privateintwidth=60;

privateintheight=20;
@Override
protectedvoidservice(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException
{
BufferedImageimg=newBufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
Graphics2Dg=img.createGraphics();

Randomrandom=newRandom();

g.setColor(Color.WHITE);
g.fillRect(0,0,width,height);

Fontfont=newFont("TimesNewRoman",Font.PLAIN,18);
g.setFont(font);

//边框
g.setColor(Color.BLACK);
g.drawRect(0,width-1,height-1);

//干扰线
g.setColor(Color.GRAY);
for(inti=0;i<60;i++)
{
intx=random.nextInt(width);
inty=random.nextInt(height);
intx1=random.nextInt(12);
inty1=random.nextInt(12);
g.drawLine(x,y,x+x1,y+y1);
}

//保存验证码
StringBufferrandomCode=newStringBuffer();
intred=0;
intgreen=0;
intblue=0;

//生成验证码
for(inti=0;i<4;i++)
{
StringstrRand=String.valueOf(random.nextInt(10));

red=random.nextInt(110);
green=random.nextInt(50);
blue=random.nextInt(50);

g.setColor(newColor(red,green,blue));
g.drawString(strRand,13*i+6,16);

randomCode.append(strRand);
}

//验证码放入session中
HttpSessionsession=req.getSession();
//需要验证的地方
//加入session

//禁止图象缓存
resp.setHeader("Pragma","no-cache");
resp.setHeader("Cache-Control","no-cache");
resp.setDateHeader("Expires",0);

resp.setContentType("image/jpeg");

//输出图象
ServletOutputStreamsos=resp.getOutputStream();
ImageIO.write(img,"jpeg",sos);
sos.close();
}
}

以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读