IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 【Javaweb】如何生成验证码 -> 正文阅读

[系统运维]【Javaweb】如何生成验证码

1、添加jar包 kaptcha-2.3.2.jar 到项目

在这里插入图片描述

2、在web.xml中配置生成servlet验证码的程序

<servlet>
    <servlet-name>KaptchaServlet</servlet-name>
    <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>KaptchaServlet</servlet-name>
    <url-pattern>/Kaptcha.jpg</url-pattern>
</servlet-mapping>

3、在表单中显示验证码并使用

在这里插入图片描述

4、在服务器获取谷歌生成的验证码和客户端发送过来的验证码相比较

  //获取Session中的验证码
        String token = (String) req.getSession().getAttribute(KAPTCHA_SESSION_KEY);
        //删除Session中的验证码
        req.getSession().removeAttribute(KAPTCHA_SESSION_KEY);
        //2、检查验证码是否正确
        if (token != null && token.equalsIgnoreCase(code)/*忽略大小写*/) {
            if (userService.existsUsername(username)) {
                //用户名不可用
                req.setAttribute("msg", "用户名已存在!");
                req.getRequestDispatcher("regist.jsp").forward(req, resp);
            } else {
                //可用
                //保存在数据库
                userService.registerUser(new User(null, username, password, email));
                //跳转到注册登录页面
                req.getRequestDispatcher("login.jsp").forward(req, resp);
            }

5、点击验证码图片会切换验证码

为图片绑定单击事件
+new Date()为了跳过服务器的缓存,(因为为了速度,浏览器每次会将请求缓存到浏览器端)这样使得每次得请求不同

<script>
    //页面加载完成之后
    $(function () {
        //给验证码图片 绑定单击事件
        $("#code_img").click(function () {
        //
            this.src = "${basePath}Kaptcha.jpg?d="+new Date();
        });
    });
</script>
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-11 17:55:43  更:2021-10-11 17:56:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:43:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码