資源簡介
java驗證碼代碼,可直接引入到自己的項目中,就可以有驗證碼功能實現

代碼片段和文件信息
package?com.servlet;
import?javax.servlet.*;
import?javax.servlet.http.*;
import?java.io.*;
import?java.util.Random;
import?java.awt.image.*;
import?java.awt.*;
import?javax.imageio.*;
//import?com.sun.image.codec.jpeg.JPEGCodec;
//import?com.sun.image.codec.jpeg.JPEGImageEncoder;
public?class?CodeServlet?extends?HttpServlet?{
//?驗證碼字體
private?Font[]?codeFont?=?{?new?Font(“Algerian“?Font.BOLD?25)
new?Font(“Vivaldi“?Font.BOLD?25)
new?Font(“Broadway“?Font.BOLD?25)
new?Font(“Forte“?Font.BOLD?25)?};
//?驗證碼背景色
private?Color?bgcolor?=?new?Color(230?219?255);
//?驗證碼干擾線顏色
private?Color?noisecolor?=?new?Color(160?143?134);
//?驗證碼邊框色
private?Color?bordercolor?=?Color.black;
private?int?width?=?90;
private?int?height?=?25;
//?處理?HTTP?get?請求
public?void?doGet(HttpServletRequest?request?HttpServletResponse?response)
throws?ServletException?IOException?{
//?清空緩沖區
response.reset();
//?注意這里的MIME類型
response.setContentType(“image/JPG“);
//?設置頁面不緩存
response.setHeader(“Pragma“?“No-cache“);
response.setHeader(“Cache-Control“?“no-cache“);
response.setDateHeader(“Expires“?0);
//?創建一個?90X25?的圖像驗證碼顯示的圖片大小
BufferedImage?image?=?new?BufferedImage(width?height
BufferedImage.TYPE_INT_RGB);
//?得到圖形環境對象?g
Graphics?g?=?image.getGraphics();
//?填充背景
g.setColor(bgcolor);
g.fillRect(0?0?width?height);
//?輸出4個驗證碼并保存到codes變量中
String?codes?=?““;
for?(int?i?=?0;?i?4;?i++)?{
codes?+=?drawCode(g?i);
}
//?將驗證碼內容保存進session中,用于驗證用戶輸入是否正確時使用
HttpSession?session?=?request.getSession(true);
session.setAttribute(“codes“?codes);
//?畫15條干擾線
drawNoise(g?10);
//?繪制邊框
g.setColor(bordercolor);
g.drawRect(0?0?width?-?1?height?-?1);
//?利用ImageIO類的write方法對圖像進行編碼將其輸出到ServletOutputStream對象
ServletOutputStream?out?=?response.getOutputStream();
//?JPEGImageEncoder?encoder?=JPEGCodec.createJPEGEncoder(out);
//?encoder.encode(image);
ImageIO.write(image?“JPG“?out);
out.close();
}
//?繪制驗證碼
public?String?drawCode(Graphics?graphics?int?i)?{
Random?random?=?new?Random();
String?code?=?“abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890“;
String?temp?=?““?+?code.charAt(random.nextInt(62));
graphics.setFont(codeFont[i]);
//取隨機顏色作為驗證碼顏色
graphics.setColor(new?Color(20?+?random.nextInt(60)?20?+?random
.nextInt(120)?20?+?random.nextInt(180)));
graphics.drawString(temp?16?+?i?*?15?22);
return?temp;
}
//?繪制干擾線
public?void?drawNoise(Graphics?graphics?int?lineNumber)?{
graphics.setColor(noisecolor);
Random?random?=?new?Random();
for?(int?i?=?0;?i? int?x1?=?random.nextInt(width);
int?y1?=?random.nextInt(height);
int?x2?=?random.nextInt(width);
int?y2?=?random.nextInt(height);
graphics.drawLine(x1?y1?x2?y2);
}
}
public?void?doPost(HttpServletRequest?request?HttpServletRes
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3263??2008-03-14?09:40??CodeServlet.java
?????文件????????297??2008-03-14?16:19??index.jsp
?????文件???????2174??2007-12-27?20:49??image.jsp
-----------?---------??----------?-----??----
?????????????????5734????????????????????3
評論
共有 條評論