Java学习笔记

关于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异常 解决方案

上一篇 下一篇

猜你喜欢

热点阅读