JavaWeb项目页面上实现验证码制作

原创 2018年04月16日 10:14:50

Java实现验证码制作,本人是在慕课网上根据视频讲解,按照流程来编写的代码,加了一些注释。验证码的类型是比较早期的那种。

先来个效果图吧:


Web配置文件中配置Servlet:


图片生成的Servlet:

public class imageServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        BufferedImage bi =new BufferedImage(68,22,BufferedImage.TYPE_INT_RGB);//图像数据缓冲区
        Graphics g = bi.getGraphics();//绘制图片
        Color c =new Color(200,150,255);//背景颜色
        g.setColor(c);//设置背景颜色x
        g.fillRect(0,0,68,22);//背景大小
        char[] ch = "abcdefghijklmnopqrstuvwxyz0123456789".toCharArray();//创建数组提供随机选取
        Random r = new Random();//生成随机数
        int len=ch.length,index;
        StringBuffer sb = new StringBuffer();
        for (int i = 0;i<4;i++){
            index = r.nextInt(len);
            g.setColor(new Color(r.nextInt(88),r.nextInt(188),r.nextInt(255)));//随机颜色
            g.drawString(ch[index]+"",(i*15)+3,18);//随机字符
            sb.append(ch[index]);
        }
        request.getSession().setAttribute("piccode", sb.toString());//验证码信息输入到session中
        ImageIO.write(bi, "jpg", response.getOutputStream());//输出图片
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

验证输入验证码是否正确:

public class LoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String piccode = (String) request.getSession().getAttribute("piccode");//从session中获取验证码
        String checkcode = request.getParameter("checkcode");//获取页面输入的验证码
        response.setContentType("text/html;charset=UTF-8");//接收字符编码设置
        PrintWriter out = response.getWriter();//创建输出流
        if (checkcode.equals(piccode)) {
            out.print("成功");
        } else {
            out.print("验证码输入错误");
        }
        out.flush();
        out.close();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

JSP页面:

<head>
    <title>验证码</title>
    <script>
        function reloadCode() {
            var time = new Date().getTime();//获取时间用来使连接不一样,避免浏览器因为缓存而使刷新图片功能失效
            document.getElementById("imageCode").src = "/servlet/imageServlet?d="+time;
        }
    </script>
</head>
<body>
<form action="/servlet/LoginServlet" method="get">
验证码:
<input type="text" name="checkcode"/>
<img src="/servlet/imageServlet" id="imageCode" alt="验证码"/>
<a href="javascript:reloadCode();">看不清楚</a></br>
    <input type="submit" name="验证" />
</form>
</body>

JavaWeb项目中生成验证码

在项目中使用servlet随机生成验证码 在jsp页面中验证码图片加入img标签,src为生成验证码的servlet的url; 在servlet中生成随机验证码 public class AuthC...
  • u013360850
  • u013360850
  • 2016-09-18 20:14:23
  • 2365

java web开发之验证码

  • 2012年05月21日 15:31
  • 139KB
  • 下载

javaWEB项目中如何实现验证码

一.什么是验证码及它的作用    :验证码为全自动区分计算机和人类的图灵测试的缩写,是一种区分用户是计算机的公共全自动程序,这个问题可以由计算机生成并评判,但是必须只有人类才能解答.可以防止恶意破解...
  • u014306128
  • u014306128
  • 2015-04-28 16:10:59
  • 745

如何在登陆页面上显示验证码

我认为在登陆页面显示验证码,
  • gegegew
  • gegegew
  • 2014-05-22 22:29:13
  • 543

简易图形验证码

  • 2018年03月31日 23:32
  • 4KB
  • 下载

delphi用内存流方式获取页面验证码图片

procedure TForm1.Button2Click(Sender: TObject); var ms:TMemoryStream; jpg:TJpegImage; vp:string; beg...
  • yoie01
  • yoie01
  • 2014-03-19 22:11:01
  • 826

JSP+servlet生成验证码并验证

生成验证码的基本过程是:
  • tuke_tuke
  • tuke_tuke
  • 2015-08-02 21:15:00
  • 1431

JSP生成数字验证码教程

验证码应用在各种场合中,十分广泛,在多种多样的系统或软件中的新用户帐户注册、用户登录、网站统一登陆或者用户在网站发布信息模块发布文章或内容都添加的随机码功能,对用户操作过程进行一种验证,使用验证码的目...
  • u012490096
  • u012490096
  • 2014-05-25 14:22:32
  • 760

Java WEB项目如何实现验证码

验证基础 一.什么是验证码及验证码的作用 验证码为全自动区分计算机和人类的图灵测试的缩写。是一种区分用户还是计算机的全自动程序,这个问题可以由计算机生成并进行判断,但是只有人类才可以解答。...
  • chenfengbao
  • chenfengbao
  • 2017-03-16 15:33:21
  • 3046

网页验证码提取工具

  • 2007年02月06日 16:13
  • 185KB
  • 下载
收藏助手
不良信息举报
您举报文章:JavaWeb项目页面上实现验证码制作
举报原因:
原因补充:

(最多只允许输入30个字)