jsp技术的验证码源代码?

发布网友 发布时间:2022-04-23 22:41

我来回答

1个回答

热心网友 时间:2022-04-23 10:49

实际当中很少用这种纯JSP的验证码技术,缺乏安全性,下面有一个这样的纯JSP的例,参考别人的,你可以看看。http://hi.baidu.com/xdsh99/item/930073d241eec511d78ed015

纯数字验证码

在JSP页面body区域编写如下代码:

导入java.awt.*,java.awt.image.BufferedImage,javax.imageio.ImageIO包

 <%
   //验证码边框的长高
   int width = 60;
   int height = 20;
   //用RGB模式输出图像区域
   BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
   //定义画笔
   Graphics graph = image.getGraphics();
   //设置验证码框背景色0-255
   graph.setColor(new Color(200, 200, 200));
   //填充矩形
   graph.fillRect(0, 0, width, height);
   //产生1000-9999之间的随机数
   Random rnd = new Random();
   int rndNum = rnd.nextInt(99) + 1000;
   //此处为何转换为String型的用int型的效果一样?
   String rndStr = String.valueOf(rndNum);
   session.setAttribute("rndStr", rndNum);
   //设置矩形区域中随机数及干扰点的颜色
   graph.setColor(Color.RED);
   //设置随机数的字体大小
   graph.setFont(new Font("",Font.PLAIN,20));
   //在已有的矩形区域中绘制随机数
   graph.drawString(rndStr, 8, 17);
   //随机产生100个干扰点
   for (int i = 0; i < 100; i++)
   {
    int x = rnd.nextInt(width);
    int y = rnd.nextInt(height);
    //设置干扰点的位置长宽
    graph.drawOval(x, y, 1, 1);
   }
   //将图像输出到页面上
   ImageIO.write(image, "JPEG", response.getOutputStream());
   //清空缓冲区
   out.clear();
   out = pageContext.pushBody();
  %>

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com