¿Por qué agregar un código de verificación?
Para evitar el envío repetido de formularios, presionar al servidor
Herramientas necesarias: kaptcha-2.3.2.jar idea2019.3
código de verificación de Google clase de servlet encapsulado
Primero importe el paquete jar
Una vez completada la importación, puede configurarla directamente en web.xml
El código de configuración es el siguiente:
<servlet>
<servlet-name>KaptchaServlet</servlet-name>
<servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>KaptchaServlet</servlet-name>
<url-pattern>/kaptcha.jpg</url-pattern>
</servlet-mapping>
Si agrega y vuelve a implementar una vez completada la adición, obtendrá una imagen del código de verificación después del acceso directo
. El efecto se muestra en la figura;
¿Viene el problema?
Cómo hacer entrar a los personajes después de obtener la imagen
La herramienta configurará una sesión en el fondo de inicio de sesión o en el fondo de registro, y el valor del valor se puede recuperar a través de la identificación
// 获取Session中的验证码
String token = (String) req.getSession().getAttribute(KAPTCHA_SESSION_KEY);
// 删除 Session中的验证码
req.getSession().removeAttribute(KAPTCHA_SESSION_KEY);
Donde KAPTCHA_SESSION_KEY es un ID fijo constante
El principio es que cuando solicitamos el servidor y obtenemos el valor a través de la sesión, inmediatamente eliminamos la sesión para prepararnos para la siguiente solicitud.
Esto evita múltiples solicitudes
Luego, obtenga el código de verificación enviado para comparar.
Una vez que sea correcto, continúe con el siguiente paso. Regrese incorrectamente a la página para repetir el mensaje de error
String code = req.getParameter("code");
//检查验证码有否有问题
if (token != null && token.equalsIgnoreCase(code)) {
}else{
}
Cómo mostrar la imagen captcha en la página jsp
Utilice el atributo img src
<img id="img_check" src="kaptcha.jpg" width="80px" height="40px" >
El src pone la dirección del servlet de solicitud para obtener la imagen