枯井世界

喜欢我选择的,选择我喜欢的!

井亮ID:xiaojing7
512次访问,排名2万外好友15人,关注者95
选择我喜欢的,喜欢我选择的.
xiaojing7的文章
原创 3 篇
翻译 0 篇
转载 1 篇
评论 1 篇
最近评论
nilioubang2008:装啊,不学java,怎么弄点java的东西啊,恩精神可嘉啊,鼓励下啊
文章分类
收藏
    相册
    images
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 Java Web中写验证码收藏

    新一篇: Tomcat下JSP、Servlet和JavaBean配置  | 


    <%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
    <%!
    private char mapTable[]={
      'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
      'P','Q','R','S','T','U','V','W','X','Y','Z','1','2','3','4','5',
      '6','7','8','9','0'
      };
    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++){
        sRand+=mapTable[(int)(mapTable.length*Math.random())];}
        // 将认证码显示到图象中
        g.setColor(Color.BLACK);
        g.setFont(new Font("Times New Roman",Font.PLAIN,18));
        String str=sRand.substring(0,1);
        g.drawString(str,8,17);
        str=sRand.substring(1,2);
        g.drawString(str,20,15);
        str=sRand.substring(2,3);
        g.drawString(str,35,18);
        str=sRand.substring(3,4);
        g.drawString(str,45,15);

    // 将认证码存入SESSION
    session.setAttribute("rand",sRand);


    // 图象生效
    g.dispose();

    // 输出图象到页面
    ImageIO.write(image, "JPEG", response.getOutputStream());


    %>

    在的别的页面引用
    <img src="image.jsp" alt="">

    <%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
    <%!
    private char mapTable[]={
      'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
      'P','Q','R','S','T','U','V','W','X','Y','Z','1','2','3','4','5',
      '6','7','8','9','0'
      };
    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++){
        sRand+=mapTable[(int)(mapTable.length*Math.random())];}
        // 将认证码显示到图象中
        g.setColor(Color.BLACK);
        g.setFont(new Font("Times New Roman",Font.PLAIN,18));
        String str=sRand.substring(0,1);
        g.drawString(str,8,17);
        str=sRand.substring(1,2);
        g.drawString(str,20,15);
        str=sRand.substring(2,3);
        g.drawString(str,35,18);
        str=sRand.substring(3,4);
        g.drawString(str,45,15);

    // 将认证码存入SESSION
    session.setAttribute("rand",sRand);


    // 图象生效
    g.dispose();

    // 输出图象到页面
    ImageIO.write(image, "JPEG", response.getOutputStream());


    %>

    在的别的页面引用
    <img src="image.jsp" alt="">

    <%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
    <%!
    private char mapTable[]={
      'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
      'P','Q','R','S','T','U','V','W','X','Y','Z','1','2','3','4','5',
      '6','7','8','9','0'
      };
    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++){
        sRand+=mapTable[(int)(mapTable.length*Math.random())];}
        // 将认证码显示到图象中
        g.setColor(Color.BLACK);
        g.setFont(new Font("Times New Roman",Font.PLAIN,18));
        String str=sRand.substring(0,1);
        g.drawString(str,8,17);
        str=sRand.substring(1,2);
        g.drawString(str,20,15);
        str=sRand.substring(2,3);
        g.drawString(str,35,18);
        str=sRand.substring(3,4);
        g.drawString(str,45,15);

    // 将认证码存入SESSION
    session.setAttribute("rand",sRand);


    // 图象生效
    g.dispose();

    // 输出图象到页面
    ImageIO.write(image, "JPEG", response.getOutputStream());


    %>

    在的别的页面引用
    <img src="image.jsp" alt="">

    <%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
    <%!
    private char mapTable[]={
      'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
      'P','Q','R','S','T','U','V','W','X','Y','Z','1','2','3','4','5',
      '6','7','8','9','0'
      };
    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++){
        sRand+=mapTable[(int)(mapTable.length*Math.random())];}
        // 将认证码显示到图象中
        g.setColor(Color.BLACK);
        g.setFont(new Font("Times New Roman",Font.PLAIN,18));
        String str=sRand.substring(0,1);
        g.drawString(str,8,17);
        str=sRand.substring(1,2);
        g.drawString(str,20,15);
        str=sRand.substring(2,3);
        g.drawString(str,35,18);
        str=sRand.substring(3,4);
        g.drawString(str,45,15);

    // 将认证码存入SESSION
    session.setAttribute("rand",sRand);


    // 图象生效
    g.dispose();

    // 输出图象到页面
    ImageIO.write(image, "JPEG", response.getOutputStream());


    %>

    在的别的页面引用
    <img src="image.jsp" alt="">
     

    发表于 @ 2007年07月29日 13:44:00|评论(loading...)|收藏

    新一篇: Tomcat下JSP、Servlet和JavaBean配置  | 

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 枯井