Este artigo compartilha o código específico do código de verificação de login de implementação de Java para sua referência. O conteúdo específico é o seguinte
1. Validatecode.java
importar java.awt.color; importar java.awt.font; importar java.awt.graphics; importar java.awt.image.bufferedImage; importar java.io.ioexception; import java.io.outputStream; import java.util.aRandom; org.springframework.stereotype.Service;/** * Login verification code* */public class ValidateCode { /** * Get the verification code image* @param out * @param number Verify the number* @throws ServletException * @throws IOException */ public void getImage(OutputStream out,String number) throws ServletException, IOException { //0. Crie uma imagem em branco bufferImage imagem = new bufferImage (100,30, bufferImage.type_int_rgb); // 1. Obtenha os gráficos de pincel de imagem g = image.getGraphics (); Aleatório r = novo aleatório (); // 2. Defina a cor da escova (NextInt (n) na classe aleatória retorna um número aleatório maior ou igual a 0 e menor que n) G.SetColor (nova cor (R.Nextint (255), R.Nextint (255), R.Nextint (255)); // 3. Desenhe o fundo do retângulo G.FillRect (0, 0, 100, 30); // 4. Ligue para um método personalizado para obter a sequência de combinações alfanuméricas de comprimento 4 g.setColor (nova cor (0,0,0)); G.SetFont (New Font (NULL, FONT.BOLD, 24)); // 5. Depois de definir a fonte colorida, desenhe a corda (x/y, a posição do caractere mais à esquerda) G.DrawString (número, 20, 24); // 6. Desenhe 8 linhas de interferência (alfa significa transparência) para (int i = 0; i <8; i ++) {g.setColor (nova cor (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 (imagem, "jpeg", out); } // Método personalizado para obter a sequência de combinações alfanuméricas de tamanho de comprimento public string getNumber (int size) {string str = "abcdefghijklmnopqrstuvwxyz0123456789"; String número = ""; Aleatório r = novo aleatório (); for (int i = 0; i <tamanho; i ++) {número+= str.charat (r.NextInt (str.Length ())); } número de retorno; }}2. Controlador
@RequestMapping (Value = "/check",Method= (RequestMethod.get}) @ResponseBody Public Void Check (httpServletRequest req) {tente {httpSertLeoveResponse resposta = this.getResponse (); Response.setContentType ("Application/Octet-Stream"); Response.AddHeader ("Content-Disposition", "Applement; filename =" + "vcode.jpeg"); String número = validateCode.getNumber (4); validateCode.getImage (Response.getOutputStream (), número); } catch (Exceção e) {}}3. Html
<img src = "http://127.0.0.1:8080/test/check">
Diagrama de reprodução
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.