資源簡介
可以直接使用的三種編寫驗證碼的方法 內(nèi)有代碼及如何去使用的詳細(xì)步驟

代碼片段和文件信息
package?com.liutao.common.captcha;
import?java.awt.image.BufferedImage;
import?java.io.ByteArrayOutputStream;
import?java.io.IOException;
import?javax.imageio.ImageIO;
import?javax.servlet.ServletException;
import?javax.servlet.ServletOutputStream;
import?javax.servlet.http.HttpServlet;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;
import?org.springframework.beans.factory.BeanFactoryUtils;
import?org.springframework.web.context.WebApplicationContext;
import?org.springframework.web.context.support.WebApplicationContextUtils;
import?com.liutao.common.web.session.SessionProvider;
import?com.octo.captcha.service.CaptchaServiceException;
import?com.octo.captcha.service.image.ImageCaptchaService;
/**
?*?提供驗證碼圖片的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();
responseOutpu
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-12-09?13:47??驗證碼\
?????目錄???????????0??2017-12-09?13:47??驗證碼\方法一\
?????文件???????31109??2014-10-30?10:58??驗證碼\方法一\ValidateCode.jar
?????文件??????????76??2017-06-03?11:59??驗證碼\方法一\使用.txt
?????目錄???????????0??2017-12-09?13:47??驗證碼\方法三\
?????文件????????4430??2017-06-04?11:21??驗證碼\方法三\captcha.xm
?????目錄???????????0??2017-12-09?13:47??驗證碼\方法三\com\
?????目錄???????????0??2017-12-09?13:47??驗證碼\方法三\com\liutao\
?????目錄???????????0??2017-12-09?13:47??驗證碼\方法三\com\liutao\common\
?????目錄???????????0??2017-12-09?13:47??驗證碼\方法三\com\liutao\common\captcha\
?????文件????????3129??2017-06-04?10:30??驗證碼\方法三\com\liutao\common\captcha\JcaptchaServlet.java
?????目錄???????????0??2017-12-09?13:47??驗證碼\方法三\com\liutao\common\web\
?????目錄???????????0??2017-12-09?13:47??驗證碼\方法三\com\liutao\common\web\session\
?????文件????????1106??2017-06-02?11:56??驗證碼\方法三\com\liutao\common\web\session\HttpSessionProvider.java
?????文件?????????639??2017-06-02?09:41??驗證碼\方法三\com\liutao\common\web\session\SessionProvider.java
?????文件??????349875??2017-06-04?11:17??驗證碼\方法三\jcaptcha-1.0-all.jar
?????文件??????330732??2017-06-04?11:34??驗證碼\方法三\jcaptcha-1.0-all.src.zip
?????文件??????330411??2017-06-04?12:07??驗證碼\方法三\jcaptcha-1.0-all.zip
?????文件?????????932??2017-06-04?11:23??驗證碼\方法三\說明.txt
?????目錄???????????0??2017-12-09?13:47??驗證碼\方法二\
?????文件????????2475??2017-06-03?11:36??驗證碼\方法二\image.jsp
?????文件?????????157??2017-10-13?21:53??驗證碼\方法二\注意.txt
評論
共有 條評論