创建servlet类
package com.rz.system.captcha.servlet;
import com.rz.system.captcha.CaptchaUtil;
import com.rz.system.captcha.constant.CaptchaConstant;
import org.apache.log4j.Logger;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.awt.image.BufferedImage;
import java.io.IOException;
/**
* 验证码servlet
* @author Administrator
*
*/
public class CaptchaServlet extends HttpServlet {
private static final Logger LOGGER = Logger.getLogger(CaptchaServlet.class);
private static final long serialVersionUID = -124247581620199710L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// 设置相应类型,告诉浏览器输出的内容为图片
resp.setContentType("image/jpeg");
// 不缓存此内容
resp.setHeader("Pragma", "No-cache");
resp.setHeader("Cache-Control", "no-cache");
resp.setDateHeader("Expire", 0);
try {
HttpSession session = req.getSession();
CaptchaUtil tool = new CaptchaUtil();
StringBuffer code = new StringBuffer();
BufferedImage image = tool.genRandomCodeImage(code);
session.removeAttribute(CaptchaConstant.KEY_CAPTCHA);
session.setAttribute(CaptchaConstant.KEY_CAPTCHA, code.toString());
// 将内存中的图片通过流动形式输出到客户端
ImageIO.write(image, "JPEG", resp.getOutputStream());
} catch (Exception e) {
LOGGER.info("context", e);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);
}
}
配置servlet
package com.rz.config;
import com.rz.system.captcha.servlet.CaptchaServlet;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.handler.SimpleMappingExceptionResolver;
import java.util.LinkedHashMap;
import java.util.Map;
@Configuration
public class MyConfig extends WebMvcConfigurerAdapter {
@Bean
public ServletRegistrationBean createCaptcha(){
return new ServletRegistrationBean( new CaptchaServlet() , "/servlet/captchaCode");
}
}