• 验证码-jsp


    1、产生验证码jsp代码

    <%@ page contentType="image/jpeg" language="java" import="java.util.*,java.awt.*,java.awt.image.*,javax.imageio.*" pageEncoding="utf-8"%>  
      
    <%!  
        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-catch");  
        response.setDateHeader("Expires",0);  
          
        //在内存中创建图象  
        int width = 60;  
        int 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("Tines Nev Roman",Font.PLAIN,18));  
        //随机产生干扰线  
        g.setColor(getRandColor(160,200));  
        for(int i = 0; i < 255; i++){  
            int x = random.nextInt(width);  
            int y = random.nextInt(height);  
            int xl = random.nextInt(12);  
            int yl = random.nextInt(12);  
        }  
        //随机产生认证码,4位
        String ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; 
        String sRand = "";  
        for(int i = 0; i < 4; i++){  
            String rand = String.valueOf(ch.charAt(random.nextInt(ch.length())));  
            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中,key=rCode
        session.setAttribute("rCode",sRand);  
        //图像生效  
        g.dispose();  
        //输出图像到页面  
        ImageIO.write(image,"JPEG",response.getOutputStream());  
        out.clear();  
        out = pageContext.pushBody();  
    %>  

    2、显示验证码jsp代码

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    <script>
        function reImg()
        {
            document.getElementById("img").src="number.jsp?code=" + Math.random();
        }
    </script>
    </head>
    <body>
    <img src="number.jsp" id="img" onclick="reImg()"/>
    </body>
    </html>
  • 相关阅读:
    二叉树的存储方式以及递归和非递归的三种遍历方式
    java基础04 匿名内部类
    jvm007 jvm知识点总览
    jvm学习006 jvm内存结构分配
    java基础03 位运算符
    java基础02 数据类型转
    jvm005 从jvm的角度谈谈线程的实现
    Arcgis投影变换后图像变深的问题
    win 7 64位如何安装erdas 9.2
    Win7 64bit 成功安装ArcView3.X
  • 原文地址:https://www.cnblogs.com/rookie-newbie/p/6935155.html
Copyright © 2020-2023  润新知