使用插件生成驗證碼

第一步:導入插件,放在/ValidateCode/WebContent/WEB-INF/lib/中.

下載地址: http://www.java2s.com/Code/Jar/k/Downloadkaptcha23jar.htm
 

第二步:配置web.xml

<servlet>
      <servlet-name>Kaptcha</servlet-name>
      <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>Kaptcha</servlet-name>
      <url-pattern>/kaptcha.jpg</url-pattern>
  </servlet-mapping>

第三步:畫頁面

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript">
       function reloadCode(){
    	   document.getElementById("imgCode").src="/ValidateCode/kaptcha.jpg"+Math.random();
       }
</script>
</head>
<body>
    <form action="/ValidateCode/kapServlet" method="post">
         <label for="username">用戶名:</label>
         <input type="text" id="username" name="username"><br>
         <label for="pwd">密&emsp;碼:</label>
         <input type="password" id="pwd" name="password"><br>
         <label for="code">驗證碼:</label>
         <input type="text" name="usercode">
         <img src="/ValidateCode/kaptcha.jpg" id="imgCode" onclick="reloadCode()"><br>
         <input type="submit" value="提交">
    </form>
</body>
</html>

action是表示向何處發送數據,寫完servlet驗證之後再填寫.

第四步:寫Servlet

package yyy.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class KapServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
    
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
		
		// 假設註冊的用戶名和密碼已經通過校驗,我還需要校驗驗證碼是否正確
		// 獲取用戶在頁面輸入的驗證碼
		String userCode = request.getParameter("usercode"); //要與表單中驗證碼輸入框中name屬性的值一樣.
		// 獲取我們後臺生成的驗證碼的結果
		String validateCodeResult =((String)request.getSession().getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY));	
		System.out.println(validateCodeResult);
		// 比對兩個驗證碼是否一致
		if(validateCodeResult.equals(userCode)) {
			response.getWriter().write("恭喜,校驗成功!");
		} else {
			response.getWriter().write("很遺憾,校驗失敗!");
		}
	}

		protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

第五步:繼續再配置web.xml

<servlet>
       <servlet-name>KapServlet</servlet-name>
       <servlet-class>yyy.servlet.KapServlet</servlet-class>
  </servlet>
  <servlet-mapping>
       <servlet-name>KapServlet</servlet-name>
       <url-pattern>/kapServlet</url-pattern>
  </servlet-mapping>

運行結果:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章