HttpServlet實現驗證碼輸出功能

2022-05-26 05:06:07 字數 1482 閱讀 1585

驗證碼不能是簡單的文字輸出,因為這樣很容易通過標籤定位到你的驗證碼,從而失去了驗證碼的意義。

使用驗證碼可以有效地抑制機械人。那麼如何實現驗證碼呢?

建立一張

獲取的畫筆

給上乙個底色

獲取方法中隨機產生了的驗證碼

設定畫筆的顏色和字型,將驗證碼畫在上

設定瀏覽器的響應頭的內容型別(contenttype)的值,讓瀏覽器正確解析響應內容

將寫出

protected void doget(httpservletrequest req, httpservletresponse resp) throws servletexception, ioexception {

//設定瀏覽器每3秒重新整理

resp.setheader("refresh", "3");

//建立一張

bufferedimage bufferedimage = new bufferedimage(80, 40, bufferedimage.type_int_rgb);

//獲取該的畫筆

graphics2d graphics = (graphics2d)bufferedimage.getgraphics();

//設定畫筆顏色

graphics.setcolor(color.white);

graphics.fillrect(0,0,80, 40);//給填充底色

//獲取隨機驗證碼

string code = getcode();

//將驗證碼寫入上

graphics.setcolor(color.orange);

graphics.setfont(new font(null, font.bold, 30));

graphics.drawstring(code, 0, 30);

//設定瀏覽器不快取

resp.setdateheader("expires", -1);

resp.setheader("cache-control", "no-cache");

resp.setheader("pragma", "no-cache");

//設定響應頭,讓瀏覽器以的形式處理此次響應

//將寫出到螢幕上

通過設定響應頭里的屬性值,讓瀏覽器定時重新整理。

resp.setdateheader("expires", -1);

resp.setheader("cache-control", "no-cache");

resp.setheader("pragma", "no-cache");

可以讓瀏覽器不進行快取

HttpServlet的response的詳解

httpservletreponse的再說明 getwriter getoutputstream 他們都可以返回資料 區別 getwriter 用於向客戶回送字元資料,getoutputstream不僅可以回送字元資料,還可以二進位制資料,如檔案 outputstream os response.g...

HttpServlet類常用方法

getrequesturi 獲取請求的資源路徑 getrequesturl 獲取統一資源定位符 絕對路徑 getremotehost 獲取客戶端的ip位址 getheader 獲取請求頭 getmethod 獲取請求的方式get或post 什麼是請求的 請求 是指 伺服器收到請求後,從乙個資源跳轉到...

HttpServlet的工作機制

httpservlet的工作機制 參考httpservlet類的功能 提供乙個抽象類,擴充套件該類可以建立乙個適合http servlet的 工作流程 1 接收客戶端的請求 2 處理請求 3 向客戶端傳送響應 1 接收客戶端的請求 1.1 從form中接收請求 1.2 在web.xml檔案中進行配置...