Este ejemplo comparte el código específico del código de verificación de inicio de sesión de implementación de Java para su referencia. El contenido específico es el siguiente
1. Validatecode.java
import java.awt.color; import java.awt.font; import java.awt.graphics; import java.awt.image.bufferedImage; import java.io.ioException; import java.io.outputstream; import java.util.Random; import javax.imageio; importar javax.servlet. org.springframework.stereotype.service;/*** Código de verificación de inicio de sesión**/public class ValidAteCode {/*** Obtener la imagen del código de verificación* @param out* @param Number Verifique el número* @throws ServletException* @throws ioexception*/public void getImage (outtream outStream Out, Cadena Número de servicio ServletException, iOException* @throws IOException*/public void void getImage (outtReam Out, numero) lanza ServletException, ioException* ///////0. Cree una imagen en blanco BufferedImage Image = New BufferedImage (100,30, BufferedImage.Type_int_Rgb); // 1. Obtenga los gráficos de pincel de imagen g = image.getgraphics (); Random r = new Random (); // 2. Establezca el color del pincel (Nextint (N) en la clase aleatoria Devuelve un número aleatorio mayor o igual a 0 y menos que n) G.SetColor (nuevo color (R.Nextint (255), R.NextInt (255), R.NextInt (255))); // 3. Dibuje el fondo del rectángulo G.Fillrect (0, 0, 100, 30); // 4. Llame a un método personalizado para obtener la cadena de combinaciones alfanuméricas de longitud 4 G.SetColor (nuevo color (0,0,0)); G.SetFont (nueva fuente (NULL, FONT.BOLD, 24)); // 5. Después de configurar la fuente de color, dibuje la cadena (x/y, la posición del carácter más a la izquierda) G.DrawString (número, 20, 24); // 6. Dibuje 8 líneas de interferencia (alfa significa transparencia) para (int i = 0; i <8; i ++) {G.SetColor (nuevo color (R.NextInt (255), R.NextInt (255), R.NextInt (255), R.NextInt (255))); G.Drawline (R.NextInt (100), R.Nextint (30), R.Nextint (100), R.NextInt (30)); } Imageio.write (imagen, "jpeg", out); } // Método personalizado para obtener la cadena de combinaciones alfanuméricas del tamaño de longitud Cadena pública getNumber (int size) {String str = "ABCDefghijklmnopqrstuvwxyz0123456789"; Numero de cadena = ""; Random r = new Random (); for (int i = 0; i <size; i ++) {number+= str.charat (r.nextint (str.length ())); } número de retorno; }}2. Controlador
@RequestMapping (value = "/check",method= =RequestMethod.get}) @ResponseBody public void check (httpservletRequest req) {try {httpservletResponse respuesta = this.getResponse (); respuesta.setContentType ("Application/Octet-stream"); respuesta.AddHeader ("Disposición de contenido", "Adjunto; FileName =" + "VCode.jpeg"); Numero de cadena = validateCode.getNumber (4); validateCode.getImage (respuesta.getOutputStream (), número); } capt (excepción e) {}}3. HTML
<img src = "http://127.0.0.1:8080/test/check">
Diagrama de reproducción
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.