1. 程式人生 > >Web驗證碼的實現方法(2)---開源元件Jcaptcha

Web驗證碼的實現方法(2)---開源元件Jcaptcha

jcaptcha是一個開源的用來生成圖形驗證碼的Java開源元件,使用起來也是非常的簡單方便。

1.jsp部分

<body>
<h2>Simple Captcha Servlet sample</h2>

<form action="submit.action" method="post">
     <img src="jcaptcha.jpg" /> <input type="text" name="japtcha" value="" />
     <input type="submit"/>
</form>
</body>

2.Servlet部分

先匯入jcaptcha-2.0-alpha-1-SNAPSHOT.jar jcaptcha-api-1.0.jar
jcaptcha-integration-simple-servlet-2.0-alpha-1-SNAPSHOT.jar
這三個包 下載地址:上傳的資源暫時未稽核通過,通過後放上來,也可百度搜索下載,一樣的。
package com.octo.captcha.module.servlet.image.sample;

import com.octo.captcha.module.servlet.image.SimpleImageCaptchaServlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SubmitActionServlet extends HttpServlet{
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException
  {
    String userCaptchaResponse = request.getParameter("japtcha");
    boolean captchaPassed = SimpleImageCaptchaServlet.validateResponse(request, userCaptchaResponse);
    if (captchaPassed)
      response.getWriter().write("captcha passed");
    else {
      response.getWriter().write("captcha failed");
    }
    response.getWriter().write("<br/><a href='index.jsp'>Try again</a>");
  }
	
}

3. web.xml部分

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Simple Image Captcha Servlet Sample</display-name>

    <servlet>
            <servlet-name>jcaptcha</servlet-name>
            <servlet-class>com.octo.captcha.module.servlet.image.SimpleImageCaptchaServlet</servlet-class>
    </servlet>

    <servlet>
            <servlet-name>submit</servlet-name>
            <servlet-class>com.octo.captcha.module.servlet.image.sample.SubmitActionServlet</servlet-class>
    </servlet>


    <servlet-mapping>
            <servlet-name>jcaptcha</servlet-name>
            <url-pattern>/jcaptcha.jpg</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
            <servlet-name>submit</servlet-name>
            <url-pattern>/submit.action</url-pattern>
    </servlet-mapping>

</web-app>

總結:

開源元件很好用,方便快捷,節省了開發時間,但是還是要把每一步都試一下,才能更詳細的瞭解每一個功能怎麼用。