感觉应该使用js去做...但是不会写...不好意思
功能是:在页面上有一个text框 显示一个随机的字符串(数组)另一个文本框去和这个随机数进行验证
如果一样就继续执行 不一样alert...
请教高手 呵呵

解决方案 »

  1.   

    在jsp页面里用java.swing.*写个图片就行.图片里的数字是随即生成的.
      

  2.   

    我写了一个贴出来。。
    package com.ysj.servlet;import java.awt.Color;
    import java.awt.Font;
    import java.awt.GradientPaint;
    import java.awt.Graphics;
    import java.awt.image.BufferedImage;
    import java.io.IOException;
    import java.io.PrintWriter;
    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 {
    //产生随机的四个字符
    public char[] getRand()
    {
    char b[]=new char[4];
    String str ="ABCDEFGHJKLMNPQRSTUVWXYabcdefghjkmnpqrstuvwxy3456789";
    for(int i=0;i<4;i++)
    {
    int r=new Random().nextInt(52);
    b[i]=str.charAt(r);
    }
    return b;
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {

    //产生图片缓冲区
    BufferedImage image=new BufferedImage(60,20,4);
    //得到该缓冲的绘制对象
    Graphics g = image.getGraphics();

    //画方框,即背景
    g.setColor(java.awt.Color.YELLOW);
    g.fillRect(0, 0, 60, 20);

    char ch[]=this.getRand();

    //前景,即图片上面的字符
    g.setColor(java.awt.Color.RED);
    g.drawString(""+ch[0], 10, 15);
    g.drawString(""+ch[1], 20, 18);
    g.drawString(""+ch[2], 30, 13);
    g.drawString(""+ch[3], 40, 17);

    // 干拢线
    g.setColor(java.awt.Color.BLACK);
    g.drawLine(new Random().nextInt(60), new Random().nextInt(20),new Random().nextInt(60), new Random().nextInt(20));
    g.drawLine(new Random().nextInt(60), new Random().nextInt(20),new Random().nextInt(60), new Random().nextInt(20));

    //关闭绘制对象
    g.dispose();

    //设置响应的格式
    response.setContentType("image/jpeg");
    //产生输出流
    ServletOutputStream sos = response.getOutputStream();
    //生成图片
    JPEGImageEncoder  jpeg= JPEGCodec.createJPEGEncoder(sos);
    jpeg.encode(image);
    //将字符存到session中
    request.getSession().setAttribute("rand", new String(ch));
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException { this.doPost(request, response);
    }}