娄底网站建设企业,牡丹区住房城乡建设局网站,备案期间网站能打开吗,关键词优化软件哪家好1.首先看一下基本的流程 2.看一下代码 注#xff1a;其中用到的一些工具类#xff0c;可以到我的github上去下载 https://github.com/hjzgg/usually_util/tree/master/utils windows 下的 redis下载 https://github.com/hjzgg/redis 获取验证码的tooken RequestMapping(value… 1.首先看一下基本的流程 2.看一下代码 注其中用到的一些工具类可以到我的github上去下载 https://github.com/hjzgg/usually_util/tree/master/utils windows 下的 redis下载 https://github.com/hjzgg/redis 获取验证码的tooken RequestMapping(valueloginCode)ResponseBodypublic String getCode(){PrintWriter out null;JSONObject jsono new JSONObject();try { //验证码工具类ValidateCode vCode new ValidateCode(55,25,4,80);String randomCode vCode.randomCode();String encCode DesUtil.strEnc(randomCodeSystem.currentTimeMillis(), 1, 2, 3);//存储验证码字符串,过期时间为1分钟redisTemplate.opsForValue().set(encCode, randomCode);redisTemplate.expire(encCode, 1, TimeUnit.MINUTES);//存储验证码生成器,过期时间为1分钟redisTemplate.opsForValue().set(encCodeValidateCode, SerializeUtil.serialize(vCode));redisTemplate.expire(encCodeValidateCode, 1, TimeUnit.MINUTES);jsono.put(success, true);jsono.put(message, encCode);} catch (Exception e) {e.printStackTrace();jsono.put(success, true);jsono.put(message, inner error.);} finally{if(out ! null) {out.flush();out.close();}}return jsono.toString();} 本例中的tooken是通过加密生成的加密串为 验证码当前时间。或者采用UUID生成唯一tooken都是可以得。生成ValidateCode验证码工具类然后将键值对tookenValidateCode放入redis中。 获取验证码图片 RequestMapping(valueloginCodeImage)public void getCodeImage(String codeAuth, HttpServletResponse response){if(codeAuth null) return;String randomCode (String) redisTemplate.opsForValue().get(codeAuth);if(randomCode null) return;ValidateCode vCode (ValidateCode)SerializeUtil.unserialize((byte[])redisTemplate.opsForValue().get(codeAuthValidateCode));//产生图片vCode.createCode(randomCode);if(vCode null) return;// 设置响应的类型格式为图片格式 response.setContentType(image/jpeg); //禁止图像缓存。 response.setHeader(Pragma, no-cache); response.setHeader(Cache-Control, no-cache); response.setDateHeader(Expires, 0); try {vCode.write(response.getOutputStream());} catch (IOException e) {e.printStackTrace();} } 根据tooken在redis中找到对应的ValidateCode验证码工具类生成验证码图片。 3.前台获取验证码 网页中获取 img srchtpp://....../ java中获取 public static ImageIcon getCodeImage(){String data JavaRequest.sendPost(loginCode, null);JSONObject result JSONObject.fromObject(data);if((Boolean) result.get(success)){JavaRequest.codeAuth result.getString(message);ImageIcon codeImg null;try{codeImg new ImageIcon(new URL(“.....”));} catch (Exception e) {e.printStackTrace();return null;}return codeImg;} else {System.out.println(获取验证码图片: result);return null;}}ImageIcon codeImg JavaRequest.getCodeImage();if(codeImg null){codeImg new ImageIcon(获取失败的图片.png);} / JLable codeImgLabel new JLabel(codeImg); 转载于:https://www.cnblogs.com/hujunzheng/p/5490899.html