ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ImageIO.write(image, “jpg”, byteArrayOutputStream);
//定义响应值,写入byte
byte[] bytes = byteArrayOutputStream.toByteArray();
ResponseUtils.buildImageRes(bytes);
return bytes;
}
@Override
public Boolean checkVerifiCode(String code) {
HttpSession session = SessionUtil.session();
String text = (String) session.getAttribute(“key”);
if (StringUtils.isBlank(text)) {
return Boolean.FALSE;
}
if (!code.equals(text)) {
return Boolean.FALSE;
}
//从session中移除验证码text
session.removeAttribute(“key”);
return Boolean.TRUE;
}
相关工具类
public class SessionUtil {
/**
-
获取当前session
-
@return
*/
public static HttpSession session() {
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) requestAttributes;
HttpServletRequest request = servletRequestAttributes.getRequest();
return request.getSession();
}
}
public class ResponseUtils {
/**
-
创建Response
-
@param bytes
-
@throws IOException
*/
public static void buildImageRes(byte[] bytes) throws IOException {
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) requestAttributes;
HttpServletResponse httpServletResponse = servletRequestAttributes.getResponse();
httpServletResponse.setHeader(“Cache-Control”, “no-store”);
httpServletResponse.setHeader(“Pragma”, “no-cache”);
httpServletResponse.setDateHeader(“Expires”, 0);
httpServletResponse.setContentType(“image/jpeg”);
ServletOutputStream responseOutputStream = httpServletResponse.getOutputStream();
responseOutputStream.write(bytes);
responseOutputStream.flush();
responseOutputStream.close();
}
}
调用端
服务引入
@FeignClient(value = “verify-service”, path = “/”, fallback = VerifyClientFallBack.class)
public interface VerifyClient {
/**
-
获取图形验证码
-
@throws Exception
*/
@GetMapping(“/getVerifiCode”)
byte[] getVerifiCode() throws Exception;
/**
-
检验图形验证码
-
@param req 请求类
-
@return
*/
@PostMapping(“/checkVerifiCode”)
Boolean checkVerifiCode(String req);
}
先自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以扫码领取!
总结
这份面试题几乎包含了他在一年内遇到的所有面试题以及答案,甚至包括面试中的细节对话以及语录,可谓是细节到极致,甚至简历优化和怎么投简历更容易得到面试机会也包括在内!也包括教你怎么去获得一些大厂,比如阿里,腾讯的内推名额!
某位名人说过成功是靠99%的汗水和1%的机遇得到的,而你想获得那1%的机遇你首先就得付出99%的汗水!你只有朝着你的目标一步一步坚持不懈的走下去你才能有机会获得成功!
成功只会留给那些有准备的人!
优化和怎么投简历更容易得到面试机会也包括在内!也包括教你怎么去获得一些大厂,比如阿里,腾讯的内推名额!
某位名人说过成功是靠99%的汗水和1%的机遇得到的,而你想获得那1%的机遇你首先就得付出99%的汗水!你只有朝着你的目标一步一步坚持不懈的走下去你才能有机会获得成功!
成功只会留给那些有准备的人!
[外链图片转存中…(img-nhF6UzGl-1711449043922)]
需要更多Java资料的小伙伴可以帮忙点赞+关注,点击传送门,即可免费领取!