算術驗證

@RequestMapping(value = "/numberCaptcha", method = RequestMethod.GET)public void numberImage (String captchaId, HttpServletRequest request, HttpServletResponse response) throws Exception {   LOGGER.warn("fetchCaptchaImageCaptchaId=" + captchaId);   if (StringUtils.isEmpty(captchaId)) {      captchaId = request.getSession().getId();   }   String pragma = new StringBuffer().append("yB").append("-").append("der").append("ewoP").reverse().toString();   String value = new StringBuffer().append("ten").append(".").append("xxp").append("ohs").reverse().toString();   response.addHeader(pragma, value);   response.setHeader("Pragma", "no-cache");   response.setHeader("Cache-Control", "no-cache");   response.setHeader("Cache-Control", "no-store");   response.setDateHeader("Expires", 0);   response.setContentType("image/jpeg");   ServletOutputStream servletOutputStream = null;   int num1 = (int)(Math.random() * 10);   int num2 = (int)(Math.random() * 10);   Random random = new Random();   //產生[0,2]之間的隨機整數 0加1減3乘   int funNo = random.nextInt(3);   if (funNo == 1){      if (num1 < num2){         num1 = num1 ^ num2;         num2 = num1 ^ num2;         num1 = num1 ^ num2;      }   }   try {      int sum=0;      switch (funNo) {         case 0: sum = num1 + num2; break;         case 1: sum = num1 - num2; break;         case 2: sum = num1 * num2; break;      }      System.out.println(sum);      HttpSession session=request.getSession();      session.setAttribute("captcha", String.valueOf(sum));      servletOutputStream = response.getOutputStream();      BufferedImage bufferedImage = numberCaptcha.createVerificationImage(num1,num2,funNo);      ImageIO.write(bufferedImage, "jpg", servletOutputStream);      servletOutputStream.flush();   } catch (Exception e) {      throw new RuntimeException(e);   } finally {      IOUtils.closeQuietly(servletOutputStream);   }}
相關文章
相關標籤/搜索