javaweb实现简单的验证码(代码片段)

uoshuan uoshuan     2023-02-24     187

关键词:

后端

package cn.itcast.web.servlet;

import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
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("/checkCodeServlet")
public class CheckCodeServlet extends HttpServlet 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 

        int width = 100;
        int height = 50;

        //1.创建一对象,在内存中图片(验证码图片对象)
        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

        //2.美化图片
        //2.1 填充背景色
        Graphics g = image.getGraphics();//画笔对象
        g.setColor(Color.PINK);//设置画笔颜色
        g.fillRect(0, 0, width, height);

        //2.2画边框
        g.setColor(Color.BLUE);
        g.drawRect(0, 0, width - 1, height - 1);

        String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789";
        //生成随机角标
        Random ran = new Random();

        for (int i = 1; i <= 4; i++) 
            int index = ran.nextInt(str.length());
            //获取字符
            char ch = str.charAt(index);//随机字符
            //2.3写验证码
            g.drawString(ch + "", width / 5 * i, height / 2);
        


        //2.4画干扰线
        g.setColor(Color.GREEN);

        //随机生成坐标点

        for (int i = 0; i < 10; i++) 
            int x1 = ran.nextInt(width);
            int x2 = ran.nextInt(width);

            int y1 = ran.nextInt(height);
            int y2 = ran.nextInt(height);
            g.drawLine(x1, y1, x2, y2);
        


        //3.将图片输出到页面展示
        ImageIO.write(image, "jpg", response.getOutputStream());


    

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
        this.doPost(request, response);
    


前端

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        /*
            分析:
                点击超链接或者图片,需要换一张
                1.给超链接和图片绑定单击事件
                2.重新设置图片的src属性值
         */
        window.onload = function () 
            //1.获取图片对象
            var img = document.getElementById("checkCode");
            //2.绑定单击事件
            img.onclick = function () 
                //加时间戳
                var date = new Date().getTime();

                img.src = "/项目名/checkCodeServlet?" + date;
            

        

        function f() 
            var img = document.getElementById("checkCode");
            var date = new Date().getTime();
            img.src = "/项目名/checkCodeServlet?" + date;

        
    </script>
</head>

<body>
    <img id="checkCode" src="/项目名/checkCodeServlet"/>
    <a href="javascript:void(0);" onclick="f()">看不清换一张?</a>
</body>

</html>

javaweb实现验证码

验证码的作用:通常的登录或者注册系统时,都会要求用户输入验证码,以此区别用户行为和计算机程序行为,目的是有人防止恶意注册、暴力破解密码等。实现验证码的思路:用server实现随机生成数字和字母组成图片的功能,... 查看详情

java#java实现简单的验证码登录(代码片段)

1.验证码类packagecom.sdhsie.web.system.controller;importcom.sdhsie.base.util.Const;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importjavax. 查看详情

简单的ocr识别验证码demo|keras实现(代码片段)

HowtoimplementanOCRmodelusingCNNs,RNNs,andCTCloss.ThisexampledemonstratesasimpleOCRmodelbuiltwiththeFunctionalAPI.ApartfromcombiningCNNandRNN,italsoillustrateshowyoucaninstantiateanewlayeranduseitasan 查看详情

验证码之图片验证码(代码片段)

...。以下我以一个简单的来说明。这里我利用的是自己画图实现的,即用画图的方式来实现的,这样不在需要什么像第三方的什么凭证才可以使用,这种简单易学,也能达到一定的效果,故目前先只是研究了这种简单的。当点击看... 查看详情

基于tensorflow的简单验证码识别(代码片段)

  TensorFlow可以用来实现验证码识别的过程,这里识别的验证码是图形验证码,首先用标注好的数据来训练一个模型,然后再用模型来实现这个验证码的识别。生成验证码  首先生成验证码,这里使用Python的captcha库来生成即... 查看详情

java实现一个简单的验证码生成器(代码片段)

  最近看了网上很多大佬们写的验证码生成,寻思着自己也写一个,话不多说,代码如下:                          &nb 查看详情

使用pythonpil库实现简单验证码的去噪处理(代码片段)

想要识别验证码,收集足够多的样本后,首先要做的就是对验证码原始图片进行处理,对验证码识别分类之前,一般包括:将彩色图片转换成灰度图、将灰度图二值化和去除噪点三个基本过程。这里仅以比较... 查看详情

canvas实现验证码功能(代码片段)

我们在做一些后台系统登录功能的时候,一般都会用到验证码,最多的就是后台生成的验证码图片返回给前端的。也可以不调用后端接口,前端使用canvas直接生成验证码。由于功能过于简单,不需要多少代码和文字说明,下面直... 查看详情

实现开源的验证码登录(代码片段)

1.如何生成验证码第一种方式:自己实现第二种方式:别人实现能自己实现就自己实现,对于非常简单的功能来说,但绝大多业务通用的功能,别人已经实现好了,所以这里我们就使用开源的类库来实现验... 查看详情

实现开源的验证码登录(代码片段)

1.如何生成验证码第一种方式:自己实现第二种方式:别人实现能自己实现就自己实现,对于非常简单的功能来说,但绝大多业务通用的功能,别人已经实现好了,所以这里我们就使用开源的类库来实现验... 查看详情

day87-bbs项目数据库设计与简单登陆验证码(代码片段)

...程:1搞清楚需求(产品经理)(1)基于用户认证组件和Ajax实现登录验证(图片验证码)(2)基于forms组件和Ajax实现注册功能(3)设计系统首页(文章列表渲染)(4)设计个人站点页面---跨表查询,分组查询(5)文章详情页(6)实现文章点赞功... 查看详情

httpservletresponse实战之下载文件与动态验证码javaweb(代码片段)

@[toc]一.前言web服务器从客户端接收HTTP请求,并创建表示该请求的HttpServletRequest对象和表示该请求响应的HTTPServletResponse。HttpServletReques:获取客户端请求过来的参数。HttpServletResponse:给客户端响应一些信息。二.HttpServletResponse负... 查看详情

爬虫之简单验证码处理(代码片段)

...一般被称为光学文字识别(OpticalCharacterRecognition,OCR)。可以实现OCR的底层库并不多,目前很多库都是使用共同的几个底层OCR库,或者是在上面进行定制。在这里我们只重点介绍:Tesseract  Tesseract是一个OCR库,目前由Google赞助(Goo 查看详情

创建一个javaweb项目——servlet验证mysql数据库实现登录(代码片段)

创建一个JavaWEB项目这个项目就是简单的登录页面,验证数据是否与MySQL数据库中信息匹配。项目搭建准备工具1、Tomcattomcat下载地址:https://tomcat.apache.org/。将tomcat下载之后,解压放在磁盘中的一个目录下方。其目录结... 查看详情

关于豆瓣登录,并实现验证码输入的方法(代码片段)

...,以下是代码:#-*-coding:utf-8-*-‘‘‘豆瓣模拟登陆,并实现发一条状态‘‘‘importrequestssession=requests.session()header="Host":"www.douban.com","Referer":"https://www.douban.com/","User-Agent":"M 查看详情

一起学习php中gd库的使用(代码片段)

...使用中文然后按顺序点击之类的,这些都比较简单地就能实现。更复杂的验证码则推荐使用一些开源的库或者api来实现。今天,我们将继续学 查看详情

django验证码实现(代码片段)

django验证码的使用:验证码的作用:用于人机识别。验证码###验证码:defcode_str(request):fromPILimportImagefromPILimportImageDraw,ImageFontfromioimportBytesIO#生成随机字符串,一个数组的形式importrandomdefget_random_color():return(random.randint(0 查看详情

校验验证码实现登录验证(代码片段)

验证码处理方式1.手动处理2.云打码平台自动识别验证码实现流程:-1.对携带验证码的页面数据进行抓取-2.可以将验证码图片进行解析,验证码图片下载到本地-3.将验证码图片交给第三方进行识别,返回验证码图片上的值-云打码... 查看详情