Files
springboot-payment/boot-service/src/main/java/com/xwbing/util/captcah/CaptchaServlet.java
T
2017-11-05 09:18:01 +08:00

44 lines
1.6 KiB
Java

package com.xwbing.util.captcah;
import com.xwbing.constant.CommonConstant;
import javax.imageio.ImageIO;
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;
import java.io.OutputStream;
/**
* 说明: 创建验证码的servlet
* 创建日期: 2016年8月29日 上午10:59:27
* 作者: xiangwbd
*/
public class CaptchaServlet extends HttpServlet {
private static final long serialVersionUID = -124247581620199710L;
@Override
protected void service(HttpServletRequest req, HttpServletResponse res) {
// 设置相应类型,告诉浏览器输出的内容为图片
res.setContentType("image/jpeg");
// 禁止图像缓存。
res.setHeader("Pragma", "No-cache");
res.setHeader("Cache-Control", "no-cache");
res.setDateHeader("Expire", 0);
try {
HttpSession session = req.getSession();
CaptchaUtil tool = new CaptchaUtil();
StringBuffer code = new StringBuffer();
BufferedImage image = tool.genRandomCodeImage(code);
session.removeAttribute(CommonConstant.KEY_CAPTCHA);
session.setAttribute(CommonConstant.KEY_CAPTCHA, code.toString());
// 将内存中的图片通过流形式输出到客户端
OutputStream out = res.getOutputStream();
ImageIO.write(image, "JPEG", out);
} catch (IOException e) {
e.printStackTrace();
}
}
}