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)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
