首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

关于jsp生成验证码图片的有关问题

2012-01-02 
关于jsp生成验证码图片的问题我准备写个jsp生成验证码的例子,在网上找了个:hehe.jsp%@pagecontentType

关于jsp生成验证码图片的问题
我准备写个jsp生成验证码的例子,在网上找了个:
                            hehe.jsp
<%@   page   contentType= "text/html;charset=GBK "
        import= "java.awt.*,java.awt.image.*,java.util.*,javax.imageio.* "              
            pageEncoding= "GBK "%>
           
<html>
          <body>
         
            <%!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);                
            }%> <%                
        //设置页面不缓存                
            response.setHeader( "Pragma ",   "No-cache ");                
            response.setHeader( "Cache-Control ",   "no-cache ");                
            response.setDateHeader( "Expires ",   0);                
             
        //   在内存中创建图象                
        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   <   100;   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( "code ",   sRand);                
             
        //   图象生效                
            g.dispose();                
             
        //   输出图象到页面                
            ImageIO.write(image,   "JPEG ",   response.getOutputStream());                
%>

</body>
    </html>

              validatecode.jsp


<%@   page   contentType= "text/html;charset=GBK "%>

<html>
<body>
<%@   include   file= "hehe.jsp "%>

<br   /> <br   /> <br   /> <br   />
<center>
<form   name= "f1 "   action= "?type=validate "   method= "post "   >
<br   />
请输入上面的验证码: <input   type= "text "   name= "t1 "   value= " "   /> <br   />
<input   type= "submit "   value= "提交 "   />
</form>
</center>
</body>
</html>

两个页面单独访问都是没有问题的,但是当validatecode.jsp包含hehe.jsp时,validatecode.jsp中表单里的text和submit都不显示了,谁能指点下

[解决办法]
你怎么用包含呀.直接用img src= "aa.jsp "就可以的.
例: <html:img src= "validateCode.jsp " width= "50 " height= "20 "/>


网上这方面很多的.

热点排行