为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

验证码代码

2017-12-01 5页 doc 17KB 21阅读

用户头像

is_083599

暂无简介

举报
验证码代码验证码代码 Administrator 19:15:14 /** * 验证码功能的实现. */ package com.xm.utils; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Rand...
验证码代码
验证码代码 Administrator 19:15:14 /** * 验证码功能的实现. */ package com.xm.utils; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; 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.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * @author Administrator * */ public class Register extends HttpServlet { private static final int WIDTH = 120; private static final int HEIGHT = 25; public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ doPost(request,response); } public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ BufferedImage image = new BufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_INT_RGB); Graphics g = image.getGraphics(); //1.画出背景色 drawBackGround(g); //2.画出边框 drawBorder(g); //3.画出随机干扰线 drawRandomLine(g); //4.画出随机数 String random = drawRandomNum((Graphics2D) g); request.getSession().setAttribute("imagecheckcode", random); //5.把图形写给浏览器 response.setContentType("image/jpeg"); //发头控制浏览器不要缓存 response.setDateHeader("expries", -1); response.setHeader("Cache-Control", "no-cache"); response.setHeader("Pragma", "no-cache"); ImageIO.write(image, "jpg", response.getOutputStream()); } private void drawBackGround(Graphics g) { // TODO Auto-generated method stub g.setColor(Color.WHITE); g.fillRect(0, 0, WIDTH, HEIGHT); } private void drawRandomLine(Graphics g) { // TODO Auto-generated method stub g.setColor(Color.BLUE); for(int i=0;i<6;i++){ //画出一条干扰先 int x1 = new Random().nextInt(WIDTH); int y1 = new Random().nextInt(HEIGHT); int x2 = new Random().nextInt(WIDTH); int y2 = new Random().nextInt(HEIGHT); g.drawLine(x1, y1, x2, y2);//初始位置X,Y.线头 线尾.不能超出背景矩形的范围. } } private void drawBorder(Graphics g) { // TODO Auto-generated method stub g.setColor(Color.WHITE); g.fillRect(1, 1, WIDTH-2,HEIGHT-2); } private String drawRandomNum(Graphics2D g) { // TODO Auto-generated method stub g.setColor(Color.RED); g.setFont(new Font("宋体",Font.BOLD,20)); // String base ="\u6c64\u5e73\u738b\u5e78\u6728\u521b\u4e16\u7684\u4e16\u754c\u4f46\u662f\u9632 \u5b88\u6253\u6cd5\u6492\u5927\u5e08\u7684\u6492\u65e6\u56fd"; String base ="ABCDEFGHIJKLMNOPQRSTUVWSYZ1234567890"; StringBuffer sb = new StringBuffer(); int x = 5; for(int i=0;i<4;i++){ int degree = new Random().nextInt(30); String ch = base.charAt(new Random() sb.append(ch); g.rotate(degree*Math.PI/180, x, 20);//设置旋转度数. g.drawString(ch, x, 20); g.rotate(-degree*Math.PI/180, x, 20); x+=30; } return sb.toString(); } }
/
本文档为【验证码代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索