req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

// 图像的上下文
        Graphics g = image.getGraphics();

// 处理验证码区域的颜色
        g.setColor(Color.white);
        g.fillRect(0, 0, width, height);

// 设置边框
        g.setColor(Color.black);
        g.drawRect(0, 0, width - 1, height - 1);

// 生成验证码
        Random random = new Random();
        String codeSession = "";
        for (int i = 0; i < length; i++)
        {
            String chaStr = String.valueOf(charset[random.nextInt(charset.length)]);
            codeSession += chaStr;
            g.setColor(Color.blue);
            g.setFont(new Font("宋体", Font.BOLD, 30));

}
        g.drawString(codeSession, drawX, drawY);

req.setAttribute("codeSession", codeSession);

// 设置干扰点
        for (int i = 1; i < 155; i++)
        {
            int x = random.nextInt(width);
            int y = random.nextInt(height);
            g.setColor(Color.red);
            g.drawOval(x, y, 0, 0);
        }
        resp.setDateHeader("Expires", -1);// 设定网页到期时间,一时过期则必到服务器上重新请求
        resp.setHeader("Cache-Control", "no-cache");// 不能cache
        resp.setHeader("Pragma", "no-cache");// 禁止浏览器从本地cache中调税内容

// 把imagewrite写入outpustream
        ImageIO.write(image, "jpeg", resp.getOutputStream());

效果如图:

Java基于Servlet 验证吗的更多相关文章

  1. Java基于Servlet过虑器

  2. 基于Servlet体系的HTTP请求代理转发Spring Boot组件

    背景概述 两个项目组原本都是各自负责两个产品线(产品A.产品B),由于公司业务的发展,目前需要将两个产品合并成一个大产品(功能整合,部分做取舍,最终产出产品C),前后端代码必然也需要整合,包括两个产品 ...

  3. Ed Burns谈HTTP/2和Java EE Servlet 4规范

    在2015年JavaLand大会上,Ed Burns展示了Java EE Servlet 4.0规范(JSR 369)的概要,演讲的重点在于Java EE平台对HTTP/2的支持.HTTP/2旨在解决 ...

  4. 【Java】Servlet 工作原理解析

    Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的 ...

  5. Java实现邮箱验证

    Java实现邮箱验证 JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理email的API.它可以方便地执行一些常用的邮件传输.我们可以基于JavaMail开 ...

  6. 基于Servlet+jsp的web计算器

    基于Servlet+jsp的web计算器 这次老大为了让我们自己复习web中页面的跳转给布置得任务 天下代码一大抄,关键看你怎么抄 首先我想到的计算算法不是什么堆栈,是简单的(其实很复杂,但是我就只需 ...

  7. Java基于ssm框架的restful应用开发

    Java基于ssm框架的restful应用开发 好几年都没写过java的应用了,这里记录下使用java ssm框架.jwt如何进行rest应用开发,文中会涉及到全局异常拦截处理.jwt校验.token ...

  8. 基于Servlet+smartUpload的文件上传

    文件上传在web应用中是非常常见的,现在我就介绍下基于servlet的文件上传,基于Struts2的文件上传可以看: 页面端代码: <%@ page language="java&qu ...

  9. 基于servlet实现一个web框架

    servlet作为一个web规范.其本身就算做一个web开发框架,可是其web action (响应某个URI的实现)的实现都是基于类的,不是非常方便,而且3.0之前的版本号还必须通过web.xml配 ...

随机推荐

  1. 关于RadAsm中GetEnvironmentStrings的BUG。

    今天在asm中不通过msvcrt.inc调用c库. 所以.第一时间就在vc的lib中拷贝了libc.lib问价.加入工程后. 声明.调用如下: 然后.链接报错. libc.lib(crt0.obj) ...

  2. L001-oldboy-mysql-dba-lesson01

          L001-oldboy-mysql-dba-lesson01 <sql应用重构>经典的书 ,思想,封顶境界! mysql下载页面: http://www.filewatcher ...

  3. MongoDB的安全性

    上篇文章介绍Mongo启动了,一般数据库启动,下面的操作就是登录数据库了,之前测试数据库是否正常安装的时候也登录过数据库,现在回想一下,好像连用户名和密码都没有输入,找几篇帖子来探究下Mongodb的 ...

  4. Android Wear预览版——尝鲜

    前两天Google推出了Android Wear的SDK,稍稍的瞧了一眼,发现这个预览版的功能还是比较简单的,只有一个通知转发的功能,不过就这么一个功能,带来的效果却是Very Good~~ 功能:发 ...

  5. Ajax 之【文件上传】

    // 前台 var formData = new FormData(); var file = document.getElementById('myFile').files[0]; formData ...

  6. [译]线程生命周期-理解Java中的线程状态

    线程生命周期-理解Java中的线程状态 在多线程编程环境下,理解线程生命周期和线程状态非常重要. 在上一篇教程中,我们已经学习了如何创建java线程:实现Runnable接口或者成为Thread的子类 ...

  7. linux实现nginx按照日期存储日志

    通过shell脚本实现+定时任务+nginx信号管理实现日志按日期存储. 1.编写shell脚本,实现日志按日期存储 #!/bin/bash base_path='/home/wwwlogs/' lo ...

  8. 去掉iphone手机滑动默认行为

    /*去掉iphone手机滑动默认行为*/ $('body').on('touchmove', function (event) { event.preventDefault(); });

  9. zhuan:点滴记录——Ubuntu 14.04中gedit打开文件出现中文乱码问题

    在中文支持配置还不完整的Ubuntu 14.04中,使用gedit打开带有中文字符的文件有时会出现乱码的情况,这是由于gedit对字符编码匹配不正确导致的,解决方法如下: 在终端中输入如下命令,然后重 ...

  10. Linux必学的60个命令

    inux必学的60个命令Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令.要想 ...