Java中有很多開源小工具。本文講的是圖形驗證碼開源軟件SimpleCaptcha。
更多的開源驗證碼小工具可以查看:點擊打開鏈接
1.準備工作
下載SimpleCaptcha所需要的jar包。
SimpleCaptcha for Java 6:點擊下載
SimpleCaptcha for Java 1.5:點擊下載
2.開始使用
- 將下載好的jar包複製到工程下的WEB-INF/lib目錄下
- 在web.xml中添加servlet的映射。SimpleCaptcha提供了4種servlet生成不同的驗證碼:StickyCaptchaServlet,SimpleCaptchaServlet, ChineseCaptchaServlet,AudioCaptchaServlet
。
這裏需要注意的是:StickyCaptchaServlet,ChineseCaptchaServlet會“粘着”用戶的session,
- 頁面重新加載將呈現相同的驗證碼,而不是一個新的。StickyCaptchaServlet映射的實例如下:
<servlet>
<servlet-name>StickyCaptcha</servlet-name>
<servlet-class>nl.captcha.servlet.StickyCaptchaServlet</servlet-class>
<init-param>
<param-name>width</param-name>
<param-value>250</param-value>
</init-param>
<init-param>
<param-name>height</param-name>
<param-value>75</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>StickyCaptcha</servlet-name>
<url-pattern>/stickyImg</url-pattern>
</servlet-mapping>
AudioCaptchaServlet實例如下:
< servlet >
< servlet-name >AudioCaptcha< / servlet-name >
< servlet-class >nl.captcha.servlet.AudioCaptchaServlet< / servlet-class >
< / servlet >
< servlet-mapping >
< servlet-name >AudioCaptcha< / servlet-name >
< url-pattern >/ audio.wav< / url-pattern >
< / servlet-mapping >
- 打開瀏覽器,瀏覽HTTP://localhost:8080/ProjectName/stickyImg。如果一切都正確設置就會看到一個驗證碼
- 現在創建一個JSP網頁,在<body>中添加以下代碼:
<img src="stickyImg" />
<form action="captchaSubmit.jsp" method="post">
<input name="answer" />
</form>
或者音頻驗證碼代碼:
<audio controls autoplay src="/audio.wav"></audio>
<form action="/captchaSubmit.jsp" method="post">
<input name="answer" />
</form>
- 再創建一個網頁叫做:captchaSubmit.jsp,添加一下代碼:
<%@ page import="nl.captcha.Captcha" %>
...
<% // We're doing this in a JSP here, but in your own app you'll want to put
// this logic in your MVC framework of choice.
Captcha captcha = (Captcha) session.getAttribute(Captcha.NAME);
// Or, for an AudioCaptcha:
// AudioCaptcha captcha = (AudioCaptcha) session.getAttribute(Captcha.NAME);
request.setCharacterEncoding("UTF-8"); // Do this so we can capture non-Latin chars
String answer = request.getParameter("answer");
if (captcha.isCorrect(answer)) { %>
<b>Correct!</b>
<% } %>
- 打開第一個創建的JSP網頁,輸入驗證碼,按回車鍵提交表單,驗證驗證碼的正確性。
自己寫了一個簡單的demo,供大家下載:點擊打開鏈接