帮楼主寻觅下,谁有,拿来>>>>>>先谢谢啦,学习下

解决方案 »

  1.   

    好像都是自己画的,不管是asp还是jsp
      

  2.   

    我们CSDN 这个验证码是怎么做的
      

  3.   

    这个图片都是自己画的吧,上边的数字也是随机生成的
    上周我们老师教我们在jsp中用java代码画,在页面中用<img>标签,在该标签的src属性中放生成图片的那个jsp页面地址就是了
    注:我新手,说错了请包含^_^
      

  4.   

    有这样的库吗?我是没听过的。
    这是我用的:(楼主,这个很好的实现了验证码的功能,自己看看代码吧)
    1.首先写servlet    VerifyImage.java
    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.imageio.ImageIO;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    public class VerifyImage extends HttpServlet {
    private static final long serialVersionUID = 3262322998876293078L;
    public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
       response.setContentType("image/jpeg");
       response.setHeader("Pragma", "No-cache");
       response.setHeader("Cache-Control", "no-cache");
       response.setDateHeader("Expires", 0);
       HttpSession session = request.getSession();
       // 在内存中创建图象
       int width = 60, height = 20;
       BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);
       // 获取图形上下文
       Graphics g = image.getGraphics();
       // 生成随机类
       Random random = new Random();
       // 设定背景色
       g.setColor(getRandColor(200, 250));
       g.fillRect(0, 0, width, height);
       // 设定字体
       g.setFont(new Font("Times New Roman", Font.PLAIN, 18));
       // 画边框
       //g.setColor(new Color());
       //g.drawRect(0,0,width-1,height-1);
       // 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
       g.setColor(getRandColor(160, 200));
       for (int i = 0; i < 155; i++) {
        int x = random.nextInt(width);
        int y = random.nextInt(height);
        int xl = random.nextInt(12);
        int yl = random.nextInt(12);
        g.drawLine(x, y, x + xl, y + yl);
       }
       // 取随机产生的认证码(4位数字)
       String sRand = "";
       for (int i = 0; i < 4; i++) {
        String rand = String.valueOf(random.nextInt(10));
        sRand += rand;
        // 将认证码显示到图象中
        g.setColor(new Color(20 + random.nextInt(110), 20 + random
          .nextInt(110), 20 + random.nextInt(110)));
        // 调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
        g.drawString(rand, 13 * i + 6, 16);
       }
       // 将认证码存入SESSION
       session.setAttribute("VerifyCode", sRand);
       // 图象生效
       g.dispose();
       // 输出图象到页面
       ImageIO.write(image, "JPEG", response.getOutputStream());
       //JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(res.getOutputStream());
       //encoder.encode(image);
    }
    // 给定范围获得随机颜色
    private Color getRandColor(int fc, int bc) {
       Random random = new Random();
       if (fc > 255)
        fc = 255;
       if (bc > 255)
        bc = 255;
       int r = fc + random.nextInt(bc - fc);
       int g = fc + random.nextInt(bc - fc);
       int b = fc + random.nextInt(bc - fc);
       return new Color(r, g, b);
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
       doGet(request, response);
    }
    }
    2.配置web.xml
    <?xml version="1.0" encoding="gbk"?>
    <web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <servlet>
        <description>This is the description of verify image</description>
        <display-name>verify image</display-name>
        <servlet-name>VerifyImage</servlet-name>
        <servlet-class>com.testajax.VerifyImage</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>VerifyImage</servlet-name>
        <url-pattern>/servlet/VerifyImage</url-pattern>
    </servlet-mapping>
    </web-app>
    3.写JSP页面   showverifycode.jsp
    <%@ page language="java" contentType="text/html;charset=gbk" pageEncoding="gbk"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
       <title>Ajax+jsp实现无刷新验证码</title>
       <script type="text/javascript">
        var request=false ;
          try {
            request = new XMLHttpRequest();
           } catch (trymicrosoft) {
            try {
               request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (othermicrosoft) {
               try {
                 request = new ActiveXObject("Microsoft.XMLHTTP");
               } catch (failed) {
                 request = false;
               } 
            }
          }
          if (!request)
            alert("Error initializing XMLHttpRequest!");    
        
        function reloadImage(){
        var url="/ajax/servlet/VerifyImage";
        request.open("GET",url,true);
        request.onreadystatechange=updatePage;
        request.send(null);
        }
        
        function updatePage(){
                if (request.readyState == 4)
                if (request.status == 200)
                    document.getElementById("pic").src="/ajax/servlet/VerifyImage";
                else if (request.status == 404)
                    alert("Request URL does not exist");
                else
                    alert("Error: status code is " + request.status);    
        }
        
        </script>
    </head>
    <body>
       Ajax+jsp实现无刷新验证码
       <br>
       <img id="pic" src="/ajax/servlet/VerifyImage" onclick="reloadImage()"/><span">看不清,换一张</span>
    </body>
    </html>