美文网首页Java学习笔记
关于SpringMVC中验证码抛:javax.servlet.S

关于SpringMVC中验证码抛:javax.servlet.S

作者: 想象之中丶意料之外 | 来源:发表于2022-01-20 13:14 被阅读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异常 解决方案

    相关文章

      网友评论

        本文标题:关于SpringMVC中验证码抛:javax.servlet.S

        本文链接:https://www.haomeiwen.com/subject/dkejhrtx.html