一對一聊天原始碼,驗證碼選擇輸入字母驗證

zhibo系統開發發表於2022-02-22

一對一聊天原始碼,驗證碼選擇輸入字母驗證實現的相關程式碼

package responseproject;
 
import java.io.IOException;
import java.util.Random;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
 
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
@WebServlet("/checkcode")
public class CheckCode extends HttpServlet{
 
/**
 * 
 */
private static final long serialVersionUID = 1L;
 
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(req, resp);
}
 
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int imgwidth=100;
int imgheight=50;
//1.建立圖片物件,在記憶體中圖片(驗證碼圖片物件)
BufferedImage image=new BufferedImage(imgwidth,imgheight,BufferedImage.TYPE_INT_RGB);  //也可以指定讀取image=imageIO.read(new file())
//2.美化圖片
Graphics g=image.getGraphics(); //獲得畫筆物件
//設定畫筆顏色
g.setColor(Color.pink);
//在建立的圖片物件大小中填充矩形,顏色為上面設定的顏色,第一,二個引數是起始點的x,y,第三,四個引數是有多寬,有多高
g.fillRect(0, 0, imgwidth, imgheight);
//重新設定畫筆顏色
g.setColor(Color.blue);
//在image上畫邊框,第一,二個引數是起始點的x,y,第三,四個引數是有多寬,有多高,注意:邊框佔一個畫素,所以需要寬和高-1才能覆蓋全部
g.drawRect(0, 0, imgwidth-1, imgheight-1);
//隨機設定驗證碼的值
String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
Random random=new Random();
//隨機在image中寫字串,第三,四個引數是畫的位置
for(int i=1;i<5;i++) {
int index=random.nextInt(str.length());  //隨機選取字母字元
g.setFont(new Font("宋體", Font.PLAIN, 20));  //設定畫筆大小
    g.drawString(str.charAt(index)+"",imgwidth/5*i ,25);    
}
//隨機畫干擾線,第一,二個引數是起始點的x,y,第三,四個引數是最後一個點的x,y
int x1=0,y1=0,x2=0,y2=0;
for(int i=0;i<=8;i++) {  //畫8次線條
x1=random.nextInt(imgwidth);
y1=random.nextInt(imgheight);
x2=random.nextInt(imgwidth);
    y2=random.nextInt(imgheight);
    g.setColor(Color.gray);
    g.drawLine(x1, y1, x2, y2);
}
//3.圖片顯示在頁面上
ImageIO.write(image, "jpg", resp.getOutputStream());  //將圖片寫入指定檔案(第三個引數是指定的位置Fileoutpotstream(new File(""))
}
 
}

以上就是 一對一聊天原始碼,驗證碼選擇輸入字母驗證實現的相關程式碼,更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2856951/,如需轉載,請註明出處,否則將追究法律責任。

相關文章