如何通過Kaptcha在Web頁面生成驗證碼
kaptcha 是一個擴展自 simplecaptcha 的驗證碼庫,方便我們不再寫此類功能。
他的代碼是谷歌托管的,可以從這里下載http://code.google.com/p/kaptcha/
工程內已經附帶了示例,可以方便開發(fā)者使用。
需要的操作就是把kaptcha-2.3.2.jar增加到工程內,然后配置訪問圖片的Servlet:
示例中的配置是:
<servlet-mapping> <servlet-name>Kaptcha</servlet-name> <url-pattern>/Kaptcha.jpg</url-pattern> </servlet-mapping>
也就是說訪問Kaptcha.jpg時其實就是訪問了輸出驗證碼圖片的Servlet。
示例中的KaptchaExample.jsp是調用頁面,這里介紹了如何驗證用戶輸入是否和驗證碼符合。
但是沒有如何刷新的操作,刷新其實很簡單,這里稍微修改即可。
注意,必須加隨機參數,否則讀取緩存就不會有效果。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Kaptcha Example</title>
<script type="text/javascript">
function refImg(){
document.getElementById("Kaptcha").src="<%=basePath%>Kaptcha.jpg?data="+Math.random();
}
</script>
</head>
<body>
<table>
<tr>
<td><img id="Kaptcha" src="<%=basePath%>Kaptcha.jpg" onclick="refImg()"></td>
<td valign="top">
<form method="POST">
<br>sec code:<input type="text" name="kaptchafield"><br />
<input type="submit" name="submit">
</form>
</td>
</tr>
</table>
<br />
<%
String c = (String)session.getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
String parm = (String) request.getParameter("kaptchafield");
out.println("Parameter: " + parm + " ? Session Key: " + c + " : ");
if (c != null && parm != null) {
if (c.equals(parm)) {
out.println("<b>true</b>");
} else {
out.println("<b>false</b>");
}
}
%>
</body>
</html>
另外修改后使用的是絕對路徑,在實際開發(fā)中應該注意這個問題。
做示例時使用的是kaptcha-2.3.2,見附件。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
IDEA2020 1.1中Plugins加載不出來的問題及解決方法
這篇文章主要介紹了IDEA2020 1.1中Plugins加載不出來的問題,本文還給大家提到了IDEA 2020.1.1 找不到程序包和符號的問題,感興趣的朋友跟隨小編一起看看吧2020-06-06

