你的位置:首页 > Java教程

[Java教程]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>