关于SpringMVC中验证码抛:javax.servlet.S
2022-01-20 本文已影响0人
想象之中丶意料之外
问题:SpringMVC中,获取验证码,直接使用Response输出流,将验证码图片流直接输出到浏览器。前端能够正常显示验证码图片,但是每次tomcat会抛出:javax.servlet.ServletException: File [validate/getCode.jsp] not found异常。
解决:在验证码Controller方法上,加上@ResponseBody注解,让框架不走视图解析。
- 示例
@RequestMapping(value = "getCode", method = RequestMethod.GET)
@ResponseBody
public void getCode() {
HttpServletResponse response = ToolUtil.getResponse();
HttpSession session = ToolUtil.getSession();
Object tmpCaptcha = session.getAttribute(CODE_KEY);
CircleCaptcha captcha = null;
if (null != tmpCaptcha) {
captcha = (CircleCaptcha) tmpCaptcha;
captcha.createCode();
} else {
captcha = CaptchaUtil.createCircleCaptcha(200, 100, 4, 15);
session.setAttribute(CODE_KEY, captcha);
}
log.info("验证码:" + captcha.getCode());
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
response.setContentType("image/jpeg");
try (ServletOutputStream stream = response.getOutputStream()) {
captcha.write(stream);
} catch (IOException e) {
e.printStackTrace();
}
}
转:关于javax.servlet.ServletException: File [/loginController/getVerifCode.jsp] not found异常 解决方案