Crear manualmente el código de verificación Java, el contenido específico es el siguiente
Composición del código de verificación de la aplicación web:
(1) Cuadro de entrada
(2) Imagen que muestra el código de verificación
El proceso de hacer código de verificación:
El contenedor que genera el código de verificación utiliza el servlet de J2EE
Clases necesarias para generar imágenes:
(1) Buffer de datos de imagen de BufferedImage
(2) Fotos de dibujo gráfico
(3) El color obtiene color
(4) El aleatorio genera números aleatorios
(5) Imagen de entrada de ImageIO
Proceso de implementación específico:
(1) Defina un servlet para generar código de verificación
(2) Determinar el objeto BufferedImage, la función principal es crear un búfer de imagen como contenedor temporal para la imagen.
(3) Obtenga el objeto gráfico, el "fondo" del dibujo, y lo comprenda como "lienzo"
(4) Genere números aleatorios a través de la información aleatoria para crear información de verificación
(5) A través de operaciones gráficas, dibuje dibujos específicos
(6) La información se almacena en la sesión
(7) Use ImageIO para emitir la imagen generada y pasar la imagen al primer plano configurando el parámetro OUT en el método Write () de ImageIO, Response.getOutputStream ().
(8) Haga un servlet para la verificación y extraiga los datos en la sesión para la verificación (el método asíncrono AJAX se usa aquí)
Implementación de código específico (ejemplo de código de verificación del lado web)
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>java verification code</title><script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script></head><body> Verification Entrada de código: <input type = "text" name = "checkcode"> <img id = "codeImg" src = "ImageServlet"> <a href = "javaScript: reloadcode ();"> ¿No puede ver claramente? </a> <br/> <input type = "subbit" value = "subt"> <div id = "info" style = "color: rojo;"> </div> <script type = "text/javascript"> $ (function () {// ajax asynchronely transferir el código de verificación a los antecedentes $ ("input [type = enviar]"). {"Código": $ ("Input [name = checkcode]"). Val ()}, function (data, textStatus) {console.log (textStatus) Date (). GetTime (); // Crea diferentes tiempos $ ("#CodeImg"). Attr ("Src", "ImageServlet? Time ="+Time); // Solicitar re} </script> </body> </html>Clase de IGRESEVLET (parte de generación de código de verificación)
@WebServlet ("/ImageServlet") Public Class ImageServlet extiende httpservlet {private static final long SerialVersionUid = 1l; / ** * @see httpservlet#httpservlet () */ public imageservlet () {super (); // TODO STUB de constructor generado automático}/ ** * @see httpservlet#doget (httpservletRequest request, httpServletReSponse respuesta) */ protegido void doget (httpservletRequest solicitud, httpServletResponse respuesta) tira servletException, iOException {// toDO auto bimg = new BufferedImage (68, 22, BufferedImage.type_int_rgb); Gráficos g = bimg.getgraphics (); Color color = nuevo color (200,151,255); // Generación de color G.SetColor (color); G.Fillrect (0, 0, 68, 22); char [] ch = "abcdefghjiklmnopqrstuvwxyz0123456789" .tocharArray (); // Obtenga una matriz que contiene letras y números, y luego obtenga aleatoriamente los caracteres de IT Random = new Random (); // crear un número aleatorio int len = ch.length, index; StringBuffer sbuffer = new StringBuffer (); // bucle genera 4 caracteres aleatorios para (int i = 0; i <4; i ++) {index = random.nextint (len); // Cree una letra y un número aleatorio G.SetColor (new Color (Random.NextInt (88), Random.NextInt (120), Random.NextInt (90))); // Cree un color al azar G.DrawString (CH [CH [CH [CH [ÍNDICE "", (15+3, 15+3, 15+3,) (I11+3, (i112+3, 15+3, 15+3, (3, (3,) (I11, 15+3, (i112+3, (i11. 18); sbuffer.append (ch [index]); // colocar los caracteres obtenidos aleatoriamente en la serie de búfer} request.getSession (). setAttribute ("newcode", sbuffer.ToString ()); // Guardar en la sesión para la verificación posterior de la verificación posterior. / ** * @see httpservlet#dopost (httpservletRequest solicitud, respuesta httpServletResponse) * / protegido void dopost (solicitud httpservletRequest, httpServletResponse Respuesta) lanza ServletException, IOException {// TODODO METODO AUTO GENERADO STUB DOGGET); }}Verificación de código de verificación (Servlet de verificación)
@WebServlet ("/CHECKCODE") Public Class CheckCode extiende httpservlet {private static final long SerialVersionUid = 1l; / ** * @see httpservlet#httpservlet () */ public checkcode () {super (); // TODO Auto Generado Constructor Stub}/ ** * @see httpservlet#doget (httpservletRequest solicitud, httpServletReSponse Respuesta) */ protegido void doget (httpservletRequest solicitud, httpServletResponse Response) ServletException, iOException {// aDO AUTO METOTO METOTOM respuesta.setcharacterEncoding ("UTF-8"); Código de cadena = request.getParameter ("código"). ToUpperCase (); // Obtenga el código de verificación y realice una cadena de conversión de caso result = null; if (request.getSession (). getAttribute ("Newcode"). Equals (Code)) {result = "Verificación exitosa!"; Response.getWriter (). Append (resultado); } else {result = "Error de código de verificación!"; Response.getWriter (). Append (resultado); }} / ** * @see httpservlet#dopost (httpservletRequest solicitud, respuesta httpServletResponse) * / protegido void dopost (httpservletRequest solicitud, httpServletResponse respuesta) lanza ServletException, ioexception {// TODO AUTO GENERADO DOGGET (Solicitud, respuesta, respuesta); }}Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.