驗證碼不能是簡單的文字輸出,因為這樣很容易通過標籤定位到你的驗證碼,從而失去了驗證碼的意義。
使用驗證碼可以有效地抑制機械人。那麼如何實現驗證碼呢?
建立一張
獲取的畫筆
給上乙個底色
獲取方法中隨機產生了的驗證碼
設定畫筆的顏色和字型,將驗證碼畫在上
設定瀏覽器的響應頭的內容型別(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檔案中進行配置...