大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 實現Java驗證碼驗證功能

實現Java驗證碼驗證功能

更新時間:2022-05-09 10:43:55 來源:動力節點 瀏覽2335次

動力節點小編來告訴大家驗證碼的校驗功能如何實現,在平時總會有一些閑雜人等,會找一些網站進行暴力注冊。而驗證碼就是防止惡意注冊的一種方式。

首先在前臺導入驗證碼圖片

jsp方式

<label for="img">驗證碼:</label>
<input type="text" name="verifycode" id="verifycode"/>
<img id="img" src="${pageContext.request.contextPath}/checkCode" title="看不清點擊刷新"/>
然后用原生js加一個點擊時刷新的效果
 <script type="text/javascript">
window.οnlοad=function () {
         document.getElementById("img").οnclick=function () {
              this.src="${pageContext.request.contextPath}/checkCode?time="+new Date().getTime();
   }
}
  </script>

后臺Servlet

//獲取用戶傳遞的驗證碼參數和Session中的驗證碼參數

//用戶傳遞參數

String checkcode=request.getParameter("verifycode");
 HttpSession session=request.getSession();

//Session中的驗證碼 該參數是通過工具類在Session中賦的參數

String checkcode_server= (String) session.getAttribute("CHECKCODE_SERVER");

//刪除session中的驗證碼,確保驗證碼的一次性

//參數為工具類中session存儲的name值

session.removeAttribute(“CHECKCODE_SERVER”);

//判斷驗證碼

if (checkcode_server==null&&!checkcode_server.equalsIgnoreCase(checkcode)){

//驗證碼不正確

//提示信息

 request.setAttribute("login_msg","驗證碼錯誤!");
//跳轉登陸頁面
request.getRequestDispatcher("/login.jsp").forward(request,response);
return;
  }

Servlet方式驗證

//驗證碼校驗
    String check=request.getParameter("check");
    //從session中獲取驗證碼
    HttpSession session=request.getSession();
    String checkcode_server= (String) session.getAttribute("CHECKCODE_SERVER");
    //保證驗證碼唯一 參數為工具類中session存儲的name值
    session.removeAttribute("CHECKCODE_SERVER");
    //比較
    if (checkcode_server==null||!checkcode_server.equalsIgnoreCase(check)){
        //驗證碼錯誤
        ResultInfo info=new ResultInfo();
        //注冊失敗
        info.setFlag(false);
        info.setErrorMsg("驗證碼錯誤!");
        //將info對象序列化為json
        ObjectMapper mapper=new ObjectMapper();
        String json=mapper.writeValueAsString(info);
        response.setContentType("application/json;charset=utf-8");
        response.getWriter().write(json);
        return ;
    }

//驗證碼工具類

package cn.easyArch.web.Servlet;
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;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
/**
驗證碼
*/
@WebServlet("/checkCode")
public class CheckCodeServlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {
//服務器通知瀏覽器不要緩存
response.setHeader(“pragma”,“no-cache”);
response.setHeader(“cache-control”,“no-cache”);
response.setHeader(“expires”,“0”);
//在內存中創建一個長80,寬30的圖片,默認黑色背景
//參數一:長
//參數二:寬
//參數三:顏色
int width = 80;
int height = 30;
BufferedImage image = new BufferedImage(width,height, BufferedImage.TYPE_INT_RGB);
//獲取畫筆
Graphics g = image.getGraphics();
//設置畫筆顏色為灰色
g.setColor(Color.GRAY);
//填充圖片
g.fillRect(0,0, width,height);
//產生4個隨機驗證碼,12Ey
String checkCode = getCheckCode();
//將驗證碼放入HttpSession中
request.getSession().setAttribute(“CHECKCODE_SERVER”,checkCode);
//設置畫筆顏色為黃色
g.setColor(Color.YELLOW);
//設置字體的小大
g.setFont(new Font(“黑體”, Font.BOLD,24));
//向圖片上寫入驗證碼
g.drawString(checkCode,15,25);
//將內存中的圖片輸出到瀏覽器
//參數一:圖片對象
//參數二:圖片的格式,如PNG,JPG,GIF
//參數三:圖片輸出到哪里去
ImageIO.write(image,“PNG”,response.getOutputStream());
}
/**
* 產生4位隨機字符串
*/
private String getCheckCode() {
String base = “0123456789ABCDEFGabcdefg”;
int size = base.length();
Random r = new Random();
StringBuffer sb = new StringBuffer();
for(int i=1;i<=4;i++){
//產生0到size-1的隨機值
int index = r.nextInt(size);
//在base字符串中獲取下標為index的字符
char c = base.charAt(index);
//將c放入到StringBuffer中去
sb.append?;
}
return sb.toString();
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request,response);
}
}

以上就是關于“實現Java驗證碼驗證功能”的介紹,大家如果想了解更多相關知識,不妨來關注一下動力節點的Java在線學習,里面的課程從入門到精通,細致全面,通俗易懂,適合小白學習,希望對大家能夠有所幫助。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 26uuu色噜噜欧美在线播放 | 亚洲综合精品一区 | 国产女人综合久久精品视 | 成人欧美在线观看免费视频 | 四虎国产精品永久地址48 | 奇米影音777 | a在线视频免费观看 | 久久亚洲精中文字幕冲田杏梨 | 国产激情对白一区二区三区四 | 成人影院在线观看视频 | 伊人涩| 久久久国产麻豆 | 天天骑天天干 | 天天添天天操 | 亚洲在线视频一区 | 老司机午夜性大片免费 | 国产在线播放成人免费 | 久久亚洲精品专区蓝色区 | 日韩欧美一二区 | 国产精品一久久香蕉产线看 | 特黄大片aaaaa毛片 | 久久久久久久九九九九 | 羞羞网站在线播放 | 国产毛片一级国语版 | 色狠狠色综合吹潮 | 一区二区3区免费视频 | 一级香蕉视频在线观看 | 亚洲精品二区中文字幕 | 四虎永久在线日韩精品观看 | 亚洲欧美成人 | 久久er国产精品免费观看2 | 亚洲日本va中文字幕在线不卡 | 性感美女香蕉视频 | 久久99精品久久久久久国产人妖 | 欧美在线日韩 | 97中文字幕在线 | 奇米影视888| 97超在线视频 | 免费黄色小视频在线观看 | 99久久国产综合精品女不卡 | 亚洲国产成人九九综合 |