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

java 生成验证码

发布时间:2020-12-15 03:14:04 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 /**?*??*/package?com.becom.dkyd.webapp.util;import?java.awt.Color;import?java.awt.Font;import?java.awt.Graphics2D;import?java.awt.image.Buff

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

/**
?*?
?*/
package?com.becom.dkyd.webapp.util;
import?java.awt.Color;
import?java.awt.Font;
import?java.awt.Graphics2D;
import?java.awt.image.BufferedImage;
import?java.io.IOException;
import?java.util.Random;
import?javax.imageio.ImageIO;
import?javax.servlet.ServletException;
import?javax.servlet.ServletOutputStream;
import?javax.servlet.http.HttpServlet;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;
import?javax.servlet.http.HttpSession;
import?com.becom.dkyd.common.Constant;
public?class?RandomCodeServlet?extends?HttpServlet
{
????/**
?????*?serialVersionUID
?????*/
????private?static?final?long?serialVersionUID?=?5916019367240722024L;
????
????private?int?width?=?60;
????
????private?int?height?=?20;
????@Override
????protected?void?service(HttpServletRequest?req,?HttpServletResponse?resp)?throws?ServletException,?IOException
????{
????????BufferedImage?img?=?new?BufferedImage(width,?height,?BufferedImage.TYPE_INT_RGB);
????????Graphics2D?g?=?img.createGraphics();
????????
????????Random?random?=?new?Random();
????????
????????g.setColor(Color.WHITE);
????????g.fillRect(0,?0,?width,?height);
????????
????????Font?font?=?new?Font("Times?New?Roman",?Font.PLAIN,?18);
????????g.setFont(font);
????????
????????//?边框
????????g.setColor(Color.BLACK);
????????g.drawRect(0,?width?-?1,?height?-?1);
????????
????????//?干扰线
????????g.setColor(Color.GRAY);
????????for?(int?i?=?0;?i?<?60;?i++)
????????{
????????????int?x?=?random.nextInt(width);
????????????int?y?=?random.nextInt(height);
????????????int?x1?=?random.nextInt(12);
????????????int?y1?=?random.nextInt(12);
????????????g.drawLine(x,?y,?x?+?x1,?y?+?y1);
????????}
????????
????????//?保存验证码
????????StringBuffer?randomCode?=?new?StringBuffer();
????????int?red?=?0;
????????int?green?=?0;
????????int?blue?=?0;
????????
????????//?生成验证码
????????for?(int?i?=?0;?i?<?4;?i++)
????????{
????????String?strRand?=?String.valueOf(random.nextInt(10));
????????????
????????????red?=?random.nextInt(110);
????????????green?=?random.nextInt(50);
????????????blue?=?random.nextInt(50);
????????????
????????????g.setColor(new?Color(red,?green,?blue));
????????????g.drawString(strRand,?13?*?i?+?6,?16);
????????????
????????????randomCode.append(strRand);
????????}
????????
????????//?验证码放入session中
????????HttpSession?session?=?req.getSession();
????????//需要验证的地方
????????//加入session
???????
????????//?禁止图象缓存
????????resp.setHeader("Pragma",?"no-cache");
????????resp.setHeader("Cache-Control",?"no-cache");
????????resp.setDateHeader("Expires",?0);
????????
????????resp.setContentType("image/jpeg");
????????
????????//?输出图象
????????ServletOutputStream?sos?=?resp.getOutputStream();
????????ImageIO.write(img,?"jpeg",?sos);
????????sos.close();
????}
}

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

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

    推荐文章
      热点阅读