Java生成验证码

来源:互联网 发布:svg获取坐标 path.js 编辑:程序博客网 时间:2024/05/17 07:17

后台Java代码

@RequestMapping(value="/123.html")    public void yaz(HttpServletResponse response,HttpServletRequest request) throws Exception{                request.setCharacterEncoding("UTF-8");        response.setCharacterEncoding("text/html;charset=utf-8");        int width=80;int height=40;        //画板        BufferedImage b =new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);        //工具        Graphics g= b.getGraphics();                g.setColor(new Color(40, 200, 255));        g.fillRect(0, 0, width, height);                char[] ch="QWERTYUIOPASDFGHJKLZXCVBNM1234567890".toCharArray();        Random random = new Random();        int len = ch.length,index;        StringBuffer sb = new StringBuffer();        for (int i = 0; i < 4; i++) {            index = random.nextInt(len);            g.setColor(new Color(random.nextInt(88), random.nextInt(188), random.nextInt(255)));            g.setFont(new Font("微软雅黑", Font.BOLD, 18));            g.drawString(ch[index]+"", i*15+3, 18);            sb.append(ch[index]);                }        //干扰线        for(int i=1;i<10000;i++){            g.setColor(new Color(random.nextInt(88), random.nextInt(188), random.nextInt(255)));            g.drawLine(random.nextInt(i*3+2), random.nextInt(i*5+1), random.nextInt(i*3+1),random.nextInt(i*9));        }                //结束        g.dispose();        b.flush();        //保存        request.getSession().setAttribute("yzm", sb.toString());        try {            //输出图片到页面            ImageIO.write(b, "png", response.getOutputStream());        } catch (IOException e) {                    }    }
前台代码

<body><!-- 图片的路径直接是验证码的请求路径即可 --><img alt="" src="<%=request.getContextPath()%>/123.html" id="reload" onclick="reload2()"><script type="text/javascript">function reload2(){    var time = new Date().getTime();    document.getElementById("reload").src="<%=request.getContextPath()%>/123.html?d="+time;}//为什么请求多了一个参数呢?  是为了告诉浏览器这是一个不同的请求,否则验证码不刷新</script></body>



0 0
原创粉丝点击