随机验证码(可刷新)

  • t8_765322
    了解作者
  • 6.3KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-20 05:12
    上传日期
java 产生随机验证码,servlet实现 点击图片可自动刷新验证码。 支持字母(可分大小写),数字
Random.rar
内容介绍
import java.io.IOException; import java.io.PrintWriter; import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; public class ImageServlet extends HttpServlet { /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request * the request send by the client to the server * @param response * the response send by the server to the client * @throws ServletException * if an error occurred * @throws IOException * if an error occurred */ public char[] getRand() { char[] rand = new char[4]; String str = "0123456789qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM"; for (int i = 0; i < 4; i++) { Random rd = new Random(); int index = rd.nextInt(str.length()); // 通过下标获取字符 rand[i] = str.charAt(index); } return rand; } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 接收图片类型 response.setContentType("image/jepg"); // 创建字节流 ServletOutputStream sos = response.getOutputStream(); // 设置缓冲区 BufferedImage img = null; img=new BufferedImage(60, 25, 4); // 在缓冲区中绘图 Graphics g = img.getGraphics(); // 调方法,得到随机字符 char[] rand = this.getRand(); // 保存于session中,以便其它页面可用 request.getSession().setAttribute("rand", new String(rand)); // 干拢线 g.setColor(Color.red); g.drawLine(new Random().nextInt(60), new Random().nextInt(60), new Random().nextInt(20), new Random().nextInt(20)); g.drawLine(new Random().nextInt(60), new Random().nextInt(60), new Random().nextInt(60), new Random().nextInt(20)); g.drawLine(new Random().nextInt(80), new Random().nextInt(60), new Random().nextInt(50), new Random().nextInt(20)); // 画背景色 g.drawRect(0, 0, 60, 25); g.setColor(Color.blue); // 设置前景色 g.setColor(Color.green); g.setFont(new Font("宋体",Font.BOLD+Font.ITALIC,18));//设置字体 g.drawString("" + rand[0], 6, 20); g.drawString("" + rand[1], 20, 15); g.drawString("" + rand[2], 30, 15); g.drawString("" + rand[3], 50, 20); // 关闭 g.dispose(); //JPEGImageEncoder code = JPEGCodec.createJPEGEncoder(sos); //code.encode(img); ImageIO.write((BufferedImage) img, "JPEG", sos); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
评论
    相关推荐
    • Java
      Java 对于Java练习
    • java
      Java Java基础
    • Java
      Java 我创建的Java项目
    • JAVA教程
      一本非常不错的清华大学java教程,讲解非常详细,看了就知道。
    • Java Cipher
      Java Cipher 加密和解密工具 附带源码 Java Cipher 加密和解密工具 附带源码 Java Cipher 加密和解密工具 附带源码 Java Cipher 加密和解密工具 附带源码
    • javabank
      Java银行 Java com的模拟操作将在bancárias上发布! 要求:Java 8。
    • java 李兴华
      java 李兴华 java 李兴华 java 李兴华 java 李兴华 java 李兴华 java 李兴华 java 李兴华 java 李兴华 java 李兴华 java 李兴华 java 李兴华 java 李兴华 java 李兴华 java 李兴华 java 李兴华 java 李兴华 java ...
    • Java204
      支持中文,支持动态注释的超强Java语言反编译器。 注意:Java204的工作目录中不能包含中文字符!! 支持现有所有Java环境产生的Class代码,而最重要的是它生成的源代码可读性极好,又充分考虑了国人的Java编码习惯,...
    • java程序
      java程序-吃点点java程序-吃点点java程序-吃点点java程序-吃点点java程序-吃点点java程序-吃点点
    • Java
      Java 2021/02/19 .java Main.java 学生.java Bmi.java 。班级 Bmi类 主类 MyBmi.class 学生班 学生样本类 2021/02/20 .java DeleteFile.java WriteFile.java MyDataPrint.java 。班级 DeleteFile.class ...