广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >JSP如何实现页面验证码
  • 685
分享到

JSP如何实现页面验证码

2024-04-02 19:04:59 685人浏览 安东尼
摘要

这篇文章主要为大家展示了“jsP如何实现页面验证码”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JSP如何实现页面验证码”这篇文章吧。 JSP页面验证码实现

这篇文章主要为大家展示了“jsP如何实现页面验证码”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JSP如何实现页面验证码”这篇文章吧。

JSP页面验证码实现

首先在JSP页面加上生成图片的链接

<img type="image" src="auth/authCode" id="codeImage" name="codeImage" style="cursor:pointer;"/>,src需要我们自己实现,实现逻辑如下

JSP如何实现页面验证码

 JSP如何实现页面验证码

 运行后,jsp页面会发出"auth/code"请求生成验证码,并将验证码放置于session中用于验证,运行效果如下

JSP如何实现页面验证码

 我们在jsp页面上加上输入验证码的输入框及提交按钮,点击按钮后进行验证码判断

JSP如何实现页面验证码

 JSP如何实现页面验证码

 JSP如何实现页面验证码

 后台会比将收入的验证码与放置于session中的验证码进行比对,并输出结果给JSP页面进行相应处理,当判断为失败,则刷新验证码

JSP如何实现页面验证码

最后,相对完整的页面和逻辑都已实现,代码如下

JSP页面代码

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ page import="java.util.*" %>
<html>
<head>
    <title>Title</title>
</head>
<%--<script src="js/Jquery.min.js"></script>--%>
<script src="https://libs.baidu.com/jquery/1.8.3/jquery.js"></script>
<script type="text/javascript">
    function submitFORM() {
        var inputCode=$("#authCode").attr("value");
        var list={"inputCode":inputCode};
        $.ajax({
            //请求方式
            type : "POST",
            //请求的媒体类型
            contentType: "application/x-www-form-urlencoded",
            //请求地址
            url : "auth/checkCode",
            //数据,JSON字符串
            data :list,
            dataType:"json",
            //请求成功
            success : function(result) {
                alert(result);
                if(result=="1"){
                    alert("验证通过");
                }else{
                    alert("验证失败,重新刷新验证码");
                    flushAuthCode();
                }
            },
            //请求失败,包含具体的错误信息
            error : function(e){
                alert(e.responseText);
            }
        });
    }
    function flushAuthCode() {
        //重新刷新验证码
        $("#codeImage").attr("src","auth/authCode?abc="+Math.random());
    }

</script>
<body>

    <form id="authForm" action="checkCode">
        <input type="text" id="authCode" name="authCode">
        <img type="image" src="auth/authCode" id="codeImage" name="codeImage" style="cursor:pointer;"/>
        <button type="button" id="submitBtn" name="submitBtn" value="提交" onclick="submitForm()"/>
    </form>
</body>
</html>

后台代码
package com.founderit.controller;


import org.springframework.stereotype.Controller;
import org.springframework.WEB.bind.annotation.*;

import javax.imageio.ImageIO;
import javax.servlet.Http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;

@Controller
@RequestMapping("auth")
public class Auth {
    private char[] codeSequence = { 'A', '1','B', 'C', '2','D','3', 'E','4', 'F', '5','G','6', 'H', '7','I', '8','J',
            'K',   '9' ,'L', '1','M',  '2','N',  'P', '3', 'Q', '4', 'R', 'S', 'T', 'U', 'V', 'W',
            'X', 'Y', 'Z'};
    @RequestMapping("authCode")
    public void getCode(HttpServletResponse response, HttpSession session) throws IOException {
        int width = 63;
        int height = 37;
        Random random = new Random();
        //设置response头信息
        //禁止缓存
        response.setHeader("Pragma", "No-cache");
        response.setHeader("Cache-Control", "no-cache");
        response.setDateHeader("Expires", 0);

        //生成缓冲区image类
        BufferedImage image = new BufferedImage(width, height, 1);
        //产生image类的Graphics用于绘制操作
        Graphics g = image.getGraphics();
        //Graphics类的样式
        g.setColor(this.getColor(200, 250));
        g.setFont(new Font("Times New Roman",0,28));
        g.fillRect(0, 0, width, height);
        //绘制干扰线
        for(int i=0;i<40;i++){
            g.setColor(this.getColor(130, 200));
            int x = random.nextInt(width);
            int y = random.nextInt(height);
            int x1 = random.nextInt(12);
            int y1 = random.nextInt(12);
            g.drawLine(x, y, x + x1, y + y1);
        }

        //绘制字符
        String strCode = "";
        for(int i=0;i<4;i++){
            String rand = String.valueOf(codeSequence[random.nextInt(codeSequence.length)]);
            strCode = strCode + rand;
            g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));
            g.drawString(rand, 13*i+6, 28);
        }
        //将字符保存到session中用于前端的验证
        session.setAttribute("authCode", strCode.toLowerCase());
        g.dispose();

        ImageIO.write(image, "JPEG", response.getOutputStream());
        response.getOutputStream().flush();
    }

    public  Color getColor(int fc,int bc){
        Random random = new Random();
        if(fc>255)
            fc = 255;
        if(bc>255)
            bc = 255;
        int r = fc + random.nextInt(bc - fc);
        int g = fc + random.nextInt(bc - fc);
        int b = fc + random.nextInt(bc - fc);
        return new Color(r,g,b);
    }

    @RequestMapping(value = "checkCode",method = RequestMethod.POST)
    @ResponseBody
    public String checkAuthCode(@RequestParam(value = "inputCode") String inputCode, HttpServletRequest request){
        String checkCode=(String) request.getSession().getAttribute("authCode");
        //返回1 代表判断通过,0代表失败
        String isCode=checkCode.equals(inputCode)?"1":"0";
        return isCode;
    }
}

以上是“JSP如何实现页面验证码”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网node.js频道!

--结束END--

本文标题: JSP如何实现页面验证码

本文链接: https://www.lsjlt.com/news/91542.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JSP如何实现页面验证码
    这篇文章主要为大家展示了“JSP如何实现页面验证码”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JSP如何实现页面验证码”这篇文章吧。 JSP页面验证码实现 ...
    99+
    2022-10-19
  • JSP页面实现验证码校验功能
    目录验证码校验分析生成验证码测试验证码校验验证码测试验证码校验添加验证码刷新在网页页面的使用中为防止“非人类”的大量操作和防止一些的信息冗余,增加验证码校验是...
    99+
    2022-11-13
    JSP验证码 JSP验证码校验 JSP页面验证码
  • JSP如何实现彩色验证码
    这篇文章给大家分享的是有关JSP如何实现彩色验证码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。生成有4个随机数字和杂乱背景的图片,数字和背景颜色会改变,服务器端刷新(用history.go(-1)也会变) 产生...
    99+
    2023-06-03
  • 如何用jsp实现图形验证
    本篇内容介绍了“如何用jsp实现图形验证”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!jsp实现图形验证: 原理,在servlet中随机生成...
    99+
    2023-06-03
  • JavaScript怎么实现页面动态验证码
    小编给大家分享一下JavaScript怎么实现页面动态验证码,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果图: 实现思路:把数字和字母放到一个数组中...
    99+
    2023-06-14
  • jsp实现简单图片验证码功能
    本文实例为大家分享了jsp实现简单图片验证码的具体代码,供大家参考,具体内容如下 一、实现的功能分析 (1)在登陆页面加验证码的功能,起到一定的安全性。在输入正确的验证码,用户名和密...
    99+
    2022-11-13
  • JavaScript实现页面动态验证码的实现示例
    引言: 现在很多在用户登陆或注册的时候为了防止程序攻击,加入了动态验证的技术,一般是让用户输入随即生成的验证码来实现。我自己写了一个没有跟后台交互的,就在前端验证,发出来给大家看看。...
    99+
    2022-11-11
  • JSP如何生成验证码源程序
    这篇文章主要介绍JSP如何生成验证码源程序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!<% // 在内存中创建图象 int width=60, height=20; BufferedImage image =...
    99+
    2023-06-03
  • 利用java实现一个web页面校验验证码功能
    利用java实现一个web页面校验验证码功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。验证码生成器:import javax.imageio.ImageIO...
    99+
    2023-05-31
    java 验证码 ava
  • layui如何实现登陆界面验证码
    这篇文章主要介绍“layui如何实现登陆界面验证码”,在日常操作中,相信很多人在layui如何实现登陆界面验证码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”layui如何实现登陆界面验证码”的疑惑有所帮助!...
    99+
    2023-06-21
  • JavaScript+html实现前端页面随机二维码验证
    分享炫酷的前端页面随机二维码验证,供大家参考,具体内容如下 直接上代码 <%@ page contentType="text/html;charset=UTF-8" lan...
    99+
    2022-11-12
  • java实现网页验证码功能
    本文实例为大家分享了java网页验证码的实现代码,供大家参考,具体内容如下Servlet:package cn.bdqn.servlet; import javax.imageio.ImageIO;import javax.servlet....
    99+
    2023-05-31
    java 验证码 ava
  • 如何使用Python实现极验验证码识别验证码
    这篇“如何使用Python实现极验验证码识别验证码”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用Python实现极验...
    99+
    2023-07-05
  • layui实现登陆界面验证码
    本文实例为大家分享了layui实现登陆界面验证码的具体代码,供大家参考,具体内容如下 效果图: html: <div class="layui-form-item">...
    99+
    2022-11-12
  • Ajax+Struts2如何实现验证码验证功能
    这篇文章主要为大家展示了“Ajax+Struts2如何实现验证码验证功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Ajax+Struts2如何实现验证码验证...
    99+
    2022-10-19
  • vue如何实现验证码
    这篇文章主要讲解了“vue如何实现验证码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue如何实现验证码”吧!vue实现验证码的方法:1、创建js组件;2、引入组件;3、定义验证对象;4、...
    99+
    2023-06-25
  • JavaScript+html实现前端页面滑动验证
    本文实例为大家分享了JavaScript+html实现前端页面滑动验证的具体代码,供大家参考,具体内容如下 分享炫酷的前端页面滑动验证 直接上代码 <%@ page con...
    99+
    2022-11-12
  • antd Vue实现Login登录页面布局案例详解 附带验证码验证功能
    效果 Login页面 <!-- * @Author: Jackie * @Date: 2022-05-07 14:34:06 * @LastEditTime: 2022...
    99+
    2022-11-13
  • JS如何自动生成动态HTML验证码页面
    这篇文章主要为大家展示了“JS如何自动生成动态HTML验证码页面”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS如何自动生成动态HTML验证码页面”这篇文章吧...
    99+
    2022-10-19
  • JavaScript+html实现前端页面滑动验证(2)
    本文实例为大家分享了炫酷的前端页面滑动验证的具体代码,供大家参考,具体内容如下 分享炫酷的前端页面滑动验证 前面已经发过一种,这里再发一种,只是特效不一样 还是直接上代码: &l...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作