当前位置:编程学习 > JSP >>

jsp验证码代码(1/4)

jsp教程验证码代码

<%@ page contenttype="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
    <%!
    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<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("rand",srand);

1 2 3 4
补充:Jsp教程,Java基础 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,