@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); } }