精华内容
下载资源
问答
  • Java文件生成随机四位验证码代码及教程 package cn.itcast.chapter06.session.example; import sun.net.www.content.text.Generic; import javax.imageio.ImageIO; import javax.servlet.Servlet; import javax....

    Java文件生成随机四位验证码代码及教程

    package cn.itcast.chapter06.session.example;
    import sun.net.www.content.text.Generic;
    import javax.imageio.ImageIO;
    import javax.servlet.Servlet;
    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 javax.servlet.http.HttpSession;
    import java.awt.*;
    import java.awt.image.BufferedImage;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    @WebServlet("/check")            
    
    public class ChesckServlet extends HttpServlet {
        private static int WIDTH=60;  
        private static int HEIGHT=20;  
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            HttpSession session =req.getSession();
            resp.setContentType("image/jpeg");
            ServletOutputStream sos = resp.getOutputStream();
            //静止缓存此图片
            resp.setHeader("pragma","No-cache");
            resp.setHeader("Cache-Control","no-cache");
            resp.setDateHeader("Expires",0);
            //创建内存,并获取图像上下文
            BufferedImage image = new BufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_INT_RGB);
            Graphics g = image.getGraphics();
            //产生随机验证码
            char[]rands = generateCheckCode();
            //产生图像
            drawBcakground(g);
            drawRands(g, rands);
            //结束绘图过程,完成图像
            g.dispose();
            //将图像发给客户端
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            ImageIO.write(image, "JPEG",bos);
            byte[]buf =bos.toByteArray();
            resp.setContentLength(buf.length);
            //将下面的语句也改为bos.weiteTo(sos)
            sos.write(buf);
            bos.close();
            sos.close();
            session .setAttribute("check_code",new String(rands) );
        }
    
        private char[] generateCheckCode() {
            //定义验证码的字符表
            String chars = "0123456789zxcvbnmlkjhgfdsaqwertyuiop";
            char[] rands = new char[4];
            for (int i = 0; i < 4; i++) {
                int rand = (int)(Math.random()*36);
                rands[i] = chars.charAt(rand);
            }
            return rands;
        }
        private void drawRands(Graphics g, char [] rands){
            g.setColor(Color.BLACK);
            g.setFont(new Font(null,Font.ITALIC|Font.BOLD,18));
            //在不同高度输出验证码
            g.drawString(""+rands[0],1,7);
            g.drawString(""+rands[1],16,15);
            g.drawString(""+rands[2],31,18);
            g.drawString(""+rands[3],46,16);
            System.out.println(rands);
        }
        private void drawBcakground(Graphics g){
            g.setColor(new Color(0xDCDCDC));
            g.fillRect(0, 0, WIDTH,HEIGHT);
            //产生120个干扰点
            for(int i=0;i<100;i++){
                int x = (int)(Math.random()*WIDTH  );
                int y = (int)(Math.random()*HEIGHT);
                int red = (int)(Math.random()*225);
                int green = (int)(Math.random()*225);
                int blue = (int)(Math.random()*225);
                g.setColor(new Color(red,green,blue));
                g.drawOval(x,y,1,0);
            }
    
        }
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doGet(req,resp);
        }
    }
    

    代码不懂查看此处资料((Tomcat资料一)Servlet资料总结

    问题现状

    在这里插入图片描述
    验证码图片加载不出来

    原因如下:

    一、HTML代码错误

    <form name = "reg" action="/login" method="post">
        <meta charset="UTF-8">
        账号:<input type="text" name="username"/><br>
        密码:<input type="password" name="passward"/><br>
        验证码:<input type="text" name="check_code">
                    <img src="/chapter06/CheckServlet"><br>
        <input type="submit" value="提交" id="bt">
    </form>
    

    正确的代码

    <form name = "reg" action="/login" method="post">
        <meta charset="UTF-8">
        账号:<input type="text" name="username"/><br>
        密码:<input type="password" name="passward"/><br>
        验证码:<input type="text" name="check_code">
                    <img src="/check">
        <input type="submit" value="提交" id="bt">
    </form>
    

    < img src="/check" >此处的路由对应上方Java文件的路由
    对于客户端来说,由java文件生成的图片需要访问Java文件,而客户端不能直接访问Java文件,如果要访问Java文件需要配置路由,配置路由方法(点击查看

    二、Java代码书写错误

    代码见上方第一个标题

    三、过滤器没有排除加载的资源路径

    if (uri.contains("/login.html")||uri.contains("/login")||uri.contains("/index.html")||uri.contains("/check")){// 排除资源
                chain.doFilter(req,resp);

    其中uri.contains("/check")就是验证码的路径

    正常页面

    在这里插入图片描述

    展开全文
  • java 小demo — 随机生成四位验证码 import javax.swing.*; import java.awt.*; import java.util.Random; /** * @author yk.ddm * @createDate 2021-01-05 12:18 */ public class Test { public static void ...

    java 小demo — 随机生成四位验证码

    import javax.swing.*;
    import java.awt.*;
    import java.util.Random;
    /**
     * @author yk.ddm
     * @createDate 2021-01-05 12:18
     */
    
    public class Test {
    
        public static void main(String[] args) {
            JFrame jf = new JFrame();
            JPanel jPanel = new Mypanel();
            jf.add(jPanel);
            jf.setSize(200,100);
            jf.setLocationRelativeTo(null);
            jf.setVisible(true);
            Mypanel mypanel =new Mypanel();
            Test05 t = new Test05();
            String s = t.getNumber();
        }
    }
    
    class Mypanel extends JPanel{
        static String s;
        @Override
        public void paint(Graphics g) {
            //设置验证码的宽高
            int width = 160;
            int height = 40;
            g.setColor(Color.LIGHT_GRAY);//背景颜色
            g.fillRect(0, 0, width -1, height -1);//背景填充
            g.setColor(Color.BLACK);//边框颜色
            g.drawRect(0, 0, width -1, height -1);//绘制边框
            //绘制干扰点
            Random random = new Random();
            for (int i = 0; i < 100; i++) {
                int x = random.nextInt(width) - 2;
                int y = random.nextInt(height) - 2;
                g.drawOval(x, y, 2, 2);
            }
            //开始对验证码字体进行设置
            g.setFont(new Font("黑体",Font.BOLD,32));//字体
            g.setColor(Color.BLUE);//颜色
            //设置一个数组来当验证码的词库
            char [] arr = ("0123456789").toCharArray();
            //实例化一个StringBuilder对象来生成随机验证码
            StringBuilder sb = new StringBuilder();
            //循环生成4个随机数
            for (int i = 0; i < 4; i++) {
                //生成一个随机位置
                int position = random.nextInt(arr.length);
                //获取到这个位置的字符
                char c = arr[position];
                //将字符添加到StringBuilder对象里面,并且加一个空格保持间隔
                sb.append(c+"");
            }
            //写入验证码,调用sb的toString()方法将其转换为一个String对象进行写入
            g.drawString(sb.toString(), 20, 30);
            //新建一个String类型的变量来存储已经好了的验证码,用来判断用户输入的验证码是否正确
            String s = sb.toString();
            this.s = sb.toString();
    //        Mypanel.s = sb.toString();
            System.out.println(Mypanel.s);
    
    //        System.out.println(s);
            Test05 t = new Test05();
            t.setNumber(s);
        }
    }
    
    class Test05 {
        String Number ;
        public String getNumber() {
            return Number;
        }
        public void setNumber(String number) {
            Number = number;
        }
    }
    

    在这里插入图片描述

    展开全文
  • Java 生成四位随机验证码

    万次阅读 2018-05-31 16:01:52
    验证码在平时用到的很多,简单记录一下生成四位随机验证码的核心代码:生成四位验证码(数字与字母混合) String str="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; StringBuilder sb=new StringBuilder(4); ...

    验证码在平时用到的很多,简单记录一下生成四位随机验证码的核心代码:


    生成四位验证码(数字与字母混合)

    
    
    String str="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    StringBuilder sb=new StringBuilder(4);
    for(int i=0;i<4;i++)
    {
         char ch=str.charAt(new Random().nextInt(str.length()));
         sb.append(ch);
    }
    System.out.println(sb.toString()); 
    展开全文
  • public static void main(String[] args) { ... // TODO 自动生成的方法存根 Random r=new Random(); String str="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";//列出所有的字母数字 ...
    public static void main(String[] args) {
            // TODO 自动生成的方法存根
            Random r=new Random();
            String  str="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";//列出所有的字母数字
            for(int i=0;i<4;i++)//循环4次,输出四个数
            {
                int a=r.nextInt(62);//从0-61中随机一个数,作为字符串的索引
                
                System.out.println(str.substring(a,a+1));//从字符串中利用索引找到输出它
            }
            

     

    转载于:https://www.cnblogs.com/jskbk/p/5483097.html

    展开全文
  • VerifyCode类:生成四随机验证码packagecn.itcast.image;importjava.awt.BasicStroke;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics2D;importjava.awt.image.BufferedImage;importjava.io....
  • } } 比较简单,有兴趣的可以尝试 下面是commons-lang3下的一个工具类,4表示几验证码,0-9表示验证码从这些数字生成 public static String generateVerificationCode() { return RandomStringUtils.random...
  • 主要介绍了java 随机生成6位短信验证码的实例代码,文中给大家扩展介绍了java随机生成四位数字验证码的方法,需要的朋友可以参考下
  • //转自: http://blog.sina.com.cn/s/blog_4ffb0acd0100ypk6.html package cn.itcast.web.response;...import java.awt.Color;...import java.awt.Font;...import java.awt.Graphics;...import java.awt.image.B
  • package com.itany.graphic; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.util.Random; /*  * 随机数  */ public class ValidateCode { ...//随机字符
  • Java随机生成四位数字的验证码

    千次阅读 2019-06-28 19:52:47
    package ... import java.util.Random; public class Test2 { public String getCheckCode() { String ZiMu = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGJKLZXCVBNM1234567890"; String resul...
  • package com.zuoye.test; import java.util.Random; import java.util.Scanner; ...public class 验证码 { public static void main(String[] args) { String a="1234567890qwertyuioplk...
  • 1.生成四位字符、整数组成的验证码(无重复码验证) package week1; import java.util.Random; import org.omg.IOP.Codec; public class doWhile{ public static void main(String[] args){ for(int k=0;k;k++)...
  • 工具类 ...import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.FileOutputStream; import java.io.IOException; impor...
  • 四位随机字符 package com.bantianshi.common.util; import java.util.concurrent.ThreadLocalRandom; /** * Created by Administrator on 2020/3/3 0003. * 随机验证码生成方法 */ public class WordUtil { ...
  • 初学Java 写的东西不完整 如有错误希望大神指正  *************************************************** public class Random {  public static void main(String[] args) {    for(int i=0;i  System.out....
  • java后台生成背景色透明验证码的方法,可直接调用。本方法只生成随机字符数字组成的四位验证码
  • package com.ibabo.jxpt.service.util.common; import java.util.HashMap; import java.util.Map; import java.util.Random; public class RandomCodeDemo { public static Map<String, String> codeDem...
  • java生成验证码图片

    2019-04-30 06:14:57
    生成随机四位验证码 生成尺寸合适、四方形的图片 打印上验证码,画干扰线和脏点(噪点),图片扭曲 返回图片给controller,输出到客户端 util层生成图片型随机验证码 /** * @Author haien * @Description 生成...
  • Java生成验证码

    2018-02-03 14:14:41
    import java.awt.List; import java.util.ArrayList; import java.util.Iterator;...//随机产生四位验证码 0-9,A-Z,a-z随机去四个数作为验证码。 public class Verify { public static void main(String[] arg
  • StringBuilder随机产生四位数的验证码 ... import java.util.Random;... * 生成随机四位数的验证码 * StringBuilder */ public class VerificationCode { public static void main(String[] args) { ...
  • 验证码包括26大写字母以及26小写...public class Demo01随机生成四位数验证码 { public static void main(String[] args) { char[] arr=new char[62]; for(int i=0;i<26;i++) { arr[i]=(char)(‘A’+i); } ...
  • public class RandomGenDome{ public static void main(String []args){ ...四位验证码如下:\n" + RandomGen.codeGen()); } } class RandomGen{ //生成四位不重复的验证码 public String ...
  • 4位数验证码

    2018-06-21 13:18:12
    java随机生成四位验证码 数字大小写字母
  • Java案例之随机验证码功能实现

    千次阅读 2019-04-21 00:16:08
    先上效果图: 源代码: RandomGen.java(实现产生验证码功能的类) package verificationcode;...import java.util.Random;... //生成四位不重复的验证码 public static String codeGen(){ char [] codeSe...
  • 这是方法类 ...//这是随机生成一个0-9的数,并且进行转换成字符串类型 public String random() { String p = Integer.toString((int)(Math.random()*10)); return p; } //生成一个大写的A-Z的字母,
  • 首先给大家看一下生成的效果图:(其他功能自己体会) ...其实以前我给大家提供过生成随机四位数字的验证码。由于当时区分了大小写。所以,这次不区分大小写进行验证。而且ui方面也比以前的二维码好看。当然,区不区分大
  • Java WEB项目如何实现验证码

    万次阅读 2017-03-16 15:33:21
    验证基础 一.什么是验证码验证码的作用 验证码为全自动区分计算机和人类的图灵测试的缩写。是一种区分用户还是计算机的全自动程序,这个问题可以由... 在servlet中随机生成一个指定位置的验证码,一般是四位
  • ...首先给大家看一下生成的效果图:(其他功能自己...其实以前我给大家提供过生成随机四位数字的验证码。由于当时区分了大小写。所以,这次不区分大小写进行验证。而且ui方面也比以前的二维码好看。当然,区不区分大...

空空如也

空空如也

1 2 3 4
收藏数 72
精华内容 28
关键字:

java生成随机四位验证码

java 订阅