我也没有用过,你可以这样试试:将验证码作成一个JSP文件(YZM.JSP)。在需要用到的地方
用<img src="YZM.JSP">调用。希望能将结果反馈一下。我也想知道。在.net中是可以这么用的。不知道这里是否可行?

解决方案 »

  1.   

    我刚才试过了,是可以的了!
    不过你的String rand = request.getParameter("rand");中rand得到的好象是null;
      

  2.   

    to: nql10(林) 在浏览器输入:
    http://localhost:8080/xxx/xxx.jsp?rand=xxx
      

  3.   

    我也没有用过,你可以这样试试:将验证码作成一个JSP文件(YZM.JSP)。在需要用到的地方
    用<img src="YZM.JSP">调用。希望能将结果反馈一下。我也想知道。在.net中是可以这么用的。不知道这里是否可行?我这里不行
      

  4.   

    我刚试过的代码:
    yzm.jsp代码如下:
    怎么在下面的网页中同时输出文字和验证码图片?
    <%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
    <%
    // 在内存中创建图象
    int width=60, height=20;
    BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    // 获取图形上下文
    Graphics g = image.getGraphics();
    // 设定背景色
    g.setColor(Color.white);
    g.fillRect(0, 0, width, height);
    //画边框
    g.setColor(Color.black);
    g.drawRect(0,0,width-1,height-1);
    // 取随机产生的认证码(4位数字)//------------------我这里是用一个字符串代替的------
    String rand = "1234";
    // 将认证码存入SESSION
    session.setAttribute("rand",rand);
    // 将认证码显示到图象中
    g.setColor(Color.black);
    g.setFont(new Font("Times New Roman",Font.PLAIN,18));
    g.drawString(rand,10,15);
    // 随机产生88个干扰点,使图象中的认证码不易被其它程序探测到
    Random random = new Random();
    for (int i=0;i<88;i++)
    {
           int x = random.nextInt(width);
           int y = random.nextInt(height);
           g.drawLine(x,y,x,y);
    }
    // 图象生效
    g.dispose();
    // 输出图象到页面
    ImageIO.write(image, "JPEG", response.getOutputStream());
    %>
    jsp1.jsp代码如下:
    <%@ page contentType="text/html; charset=GBK" %>
    <html>
    <head>
    <title>验证码</title>
    </head>
    <body bgcolor="#ffffff">
    <table>
    <tr>
    <td><img src="yzm.jsp"></td>
    </tr>
    </table>
    </body>
    </html>
      

  5.   

    在jsp1.jsp中你可以看到你要的验证码,你再试一下,如果不行,肯定不是方法的问题,可能是在yzm.jsp中不能得到你要的参数rand;http://localhost:8080/xxx/jsp1.jsp?rand=xxx!
      

  6.   

    在jsp1.jsp中你可以看到你要的验证码了!文件路径应该是http://localhost:8080/xxx/jsp1.jsp?rand=xxx,
      

  7.   

    我这里不行。我用的是tomcat4.0,你用什么服务器?
      

  8.   

    郁闷,我这里用带参数的不行
    http://localhost:8080/xxx/jsp1.jsp?rand=xxx,
      

  9.   

    我也是tomcat4.0,带参数肯定不行,在yzm.jsp文件中不能取到你要的参数。
    在验证码中不一顶要用到你传的参数啊!
    你可以定义一个字符数组:
    char[] aaa = new char[]{'0','1','2','3','4','5',.......};
    String bbb = "";
    for(int j = 0;j<4;j++)
    {
    bbb += aaa[i];
    }
    其中i为随机的就可以得到4位验证码字符串啊!
      

  10.   

    在jsp1.jsp中你可以看到你要的验证码了!文件路径应该是
    http://localhost:8080/xxx/jsp1.jsp?rand=xxx,
    晕,我以为你那边行。