1. 程式人生 > 程式設計 >javaweb servlet生成簡單驗證碼

javaweb servlet生成簡單驗證碼

本文例項為大家分享了javaweb servlet生成驗證碼的具體程式碼,供大家參考,具體內容如下

package com.serv;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;

import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(urlPatterns={"/Servyzm"})
public class Servyzm extends HttpServlet {
  
  @Override
  protected void doGet(HttpServletRequest req,HttpServletResponse resp)
      throws ServletException,IOException {
    // TODO 自動生成的方法存根
    doPost(req,resp);
  }
  @Override
  protected void doPost(HttpServletRequest req,IOException {
    // TODO 自動生成的方法存根
    Random r = new Random();
    //建立圖片緩衝流
    BufferedImage buf = new BufferedImage(70,25,BufferedImage.TYPE_INT_RGB);
    Graphics g = buf.getGraphics();//獲取圖片的畫布物件
    g.fillRect(0,70,25);//從左上角開始(0,0)座標開始填充白色,寬70,高25
    g.setColor(new Color(150,150,150));//指定的是顯示的字型的顏色
    String str = r.nextInt(9000)+1000+"";
    g.drawString(str,20,20);// drawString(String str,int x,int y)str指的是輸出的文字;x,y指的是距離左上角的位置
    for (int i = 0; i < 8; i++) {
      int startx = r.nextInt(120);
      int starty = r.nextInt(30);
      g.setColor(new Color(startx,232,starty));
      g.drawLine(startx,starty,startx + 10,starty + 10);
    }
    ServletOutputStream out = resp.getOutputStream();// 獲取位元組流
    ImageIO.write(buf,"jpg",out);
  }
//  public static int getString(){
//    
//  }
}

執行截圖:

javaweb servlet生成簡單驗證碼

更多關於驗證碼的文章請點選檢視:《java驗證碼》

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。