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
블로그 이미지

클라인STR

,