美文网首页
Java验证码

Java验证码

作者: bore1994 | 来源:发表于2016-09-20 18:37 被阅读0次

Servlet代码    (JcaptchaServlet.java)

/**

* 提供验证码图片的Servlet

*/

@SuppressWarnings("serial")

public class JcaptchaServlet extends HttpServlet {

public static final String CAPTCHA_IMAGE_FORMAT = "jpeg";

private ImageCaptchaService captchaService;

private SessionProvider session;

@Override

public void init() throws ServletException {

WebApplicationContext appCtx = WebApplicationContextUtils

.getWebApplicationContext(getServletContext());

captchaService = (ImageCaptchaService) BeanFactoryUtils

.beanOfTypeIncludingAncestors(appCtx, ImageCaptchaService.class);

session = (SessionProvider) BeanFactoryUtils

.beanOfTypeIncludingAncestors(appCtx, SessionProvider.class);

}

@Override

protected void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

byte[] captchaChallengeAsJpeg = null;

// the output stream to render the captcha image as jpeg into

ByteArrayOutputStream jpegOutputStream = new ByteArrayOutputStream();

try {

// get the session id that will identify the generated captcha.

// the same id must be used to validate the response, the session id

// is a good candidate!

String captchaId = session.getSessionId(request);

BufferedImage challenge = captchaService.getImageChallengeForID(

captchaId, request.getLocale());

// Jimi.putImage("image/jpeg", challenge, jpegOutputStream);

ImageIO.write(challenge, CAPTCHA_IMAGE_FORMAT, jpegOutputStream);

} catch (IllegalArgumentException e) {

response.sendError(HttpServletResponse.SC_NOT_FOUND);

return;

} catch (CaptchaServiceException e) {

response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);

return;

}

// catch (JimiException e) {

// response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);

// return;

// }

captchaChallengeAsJpeg = jpegOutputStream.toByteArray();

// flush it in the response

response.setHeader("Cache-Control", "no-store");

response.setHeader("Pragma", "no-cache");

response.setDateHeader("Expires", 0);

response.setContentType("image/" + CAPTCHA_IMAGE_FORMAT);

ServletOutputStream responseOutputStream = response.getOutputStream();

responseOutputStream.write(captchaChallengeAsJpeg);

responseOutputStream.flush();

responseOutputStream.close();

}

}

因为xml文件无法导入所以只能贴图了

相关文章

网友评论

      本文标题:Java验证码

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