用Session来完成用户登录,防止表单重复提交。

 

 //写汉字 
   String base = "\u7684\u4e00\u4e86\u662f\u6211\u4e0d\u5728\u4eba\u4eec\u6709\u6765\u4ed6\u8fd9\u4e0a\u7740";
        //写4个字
  Color c = Color.BLUE;
  g.setColor(c);
  Font font = new Font("宋体", Font.ITALIC, 20);
        g.setFont(font);
       
        StringBuffer sb = new StringBuffer();
        //产生汉字
        for(int i=0;i<4;i++){
         int location = new Random().nextInt(base.length()-1);
      char chr = base.charAt(location);
      sb.append(chr+"");
        }
        checkCode=sb.toString();
        Graphics2D gd = (Graphics2D) g;
        gd.rotate(0.05);
        //把汉字写到图片上
        g.drawString(checkCode, 10, 20);

 }

 

 

 

public static  void outImage(OutputStream os) throws IOException{
  //创建图片
  BufferedImage image = new BufferedImage(WIDTH, HEIGHT, IMAGETYPE);
  //得到图型
  Graphics g = image.getGraphics();
  // 设置图片背景色
  setBackground(g);
  //向图片上写边框
  setBorder(g);
  //向图片上写干扰线
  setRandomLine(g);
  // 7、向图片上写数据
  setFont(g);
  // 8、把图片写给浏览器
  ImageIO.write(image, "gif", os);
 }

 

 

 

 

//清楚浏览器缓存

      response.setIntHeader("expires", 0);

      response.setHeader("Cache-Control", "no-cache");

      response.setHeader("Pragma", "no-cache");

     

      //通知浏览器以图片的方式打开

      response.setHeader("Content-Type", "image/jpeg");

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值