http://sourceforge.net/projects/simplecaptcha/files/ 에서 jar파일을 다운로드 받는다.
프로젝트에서 사용시 JVM 버전으로인해 simplecaptcha-1.1.1-jdk1.5.jar 다운받아서 적용하였다.
public class CaptchaServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
Captcha captcha = new Captcha.Builder(250, 60).addText(new DefaultTextProducer(6)).gimp(new DropShadowGimpyRenderer()).build();
// 200 * 50 에해당하는 이미지 사이즈를 지정하고, 자동가입방지 문자 길이를 설정한다.
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
// 캐쉬를 지우기 위해 헤더값을 설정
response.setContentType("image/jpeg");
// 리턴값을 image형태로 설정
CaptchaServletUtil.writeImage(response, captcha.getImage());
//Image 를 write 한다
request.getSession().setAttribute("CorrectAnswer",captcha.getAnswer());
//세션에 자동가입방지 문자를 저장한다.
} catch (Exception e) {
System.out.println(e.getMessage());
System.out.println(e.getStackTrace());
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
return;
}
}
}
다양한 형태의 이미지 변형은 http://simplecaptcha.sourceforge.net/extending.html 참조한다.!!
web.xml 에 서블릿 설정을 추가한다.
CaptchaServlet x1.com.ctl.CaptchaServlet 1 CaptchaServlet /captcha
뷰
<tr>
<th></th>
<td class="attach">
<img id="captchaImg" name="captchaImg" src="/captcha" alt="Captcha Image" height="45" />
<a onclick="document.inputForm.captchaImg.src='/captcha?id='+Math.random();" id="refresh" style="cursor:pointer">이미지 새로고침</a>
</td>
</tr>
<tr>
<th></th>
<td class="td">
<input type="text" size="10" style="width:152px;;height:10px;border:1px solid #A5ACB2;height:13px;line-height:13px;padding:3px 0 0 4px;" name="captchaText" id="captchaText" />
</td>
</tr>
'FrameWork' 카테고리의 다른 글
Spring Boot 에서 Servlet 과 필터 사용하기 (0) | 2019.04.18 |
---|---|
Model 영역 (0) | 2018.10.20 |
ActionServlet의 동작방식 (0) | 2018.10.20 |
스트럿츠 프레임워크 구조 (0) | 2018.10.20 |
스트럿츠(Struts) 소개 (0) | 2018.10.20 |