圖片驗證碼的生成
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//6、設置頭,控制瀏覽器不要緩存圖片數(shù)據(jù)
response.setHeader("Expires", "-1");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("pragma", "no-cache");
//5、通知瀏覽器以圖片的方式打開
response.setHeader("content-type", "image/jpeg");
//1、在內存中創(chuàng)建一幅圖片
BufferedImage image = new BufferedImage(80, 20, BufferedImage.TYPE_INT_RGB);
//2、得到圖片
Graphics g = image.getGraphics();
//設置圖片背景顏色
g.setColor(Color.WHITE);
g.fillRect(0, 0, 80, 20);
//3、向圖片上寫數(shù)據(jù)
g.setColor(Color.BLUE);
g.setFont(new Font(null,Font.BOLD,20));
g.drawString(makeNum(), 0, 20);
//4、將圖片寫給瀏覽器
ImageIO.write(image, "jpg", response.getOutputStream());
}
隨機數(shù)的生成
//生成七位隨機數(shù)的函數(shù)
private String makeNum() {
Random r = new Random();
String num = r.nextInt(9999999) + "";
StringBuffer sb = new StringBuffer();
for (int i=0;i<7-num.length();i++){
sb.append("0"); //不夠七位的用“0”補充
}
num = sb.toString()+num; //字符串合并
return num;
}
中文驗證碼
將常用字的編碼放到一個數(shù)組中,然后使用隨機數(shù)調用即可。
最后編輯于 :2017.11.26 23:52:16
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者 【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。 平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。