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. 2014-10 u-boot make xxx_defconfig 过程分析

    /** ****************************************************************************** * @author    Maox ...

  2. DigitalOcean(DO)购买VPS流程

    背景: 对于一个程序员来说,拥有自己的一台国外服务器是一种多么激动的事情,尽管配置不如自己电脑的1/5,但是想一想可以不用备案搭建网站,可以搭建shadow服务器,从此通过自己的服务器上网,想一想真是 ...

  3. mysql table readonly

    if the table does not have primary key or unique non-nullable defined, then MySql workbench could no ...

  4. C# CRC32

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  5. 使用node.js抓取有路网图书信息(原创)

    之前写过使用python抓取有路网图书信息,见http://www.cnblogs.com/dyf6372/p/3529703.html. 最近想学习一下Node.js,所以想试试手,比较一下http ...

  6. MongoDB之【增加用户认证、增加用户、删除用户、修改用户密码、读写权限、只读权限】

    说明:增加用户是针对数据库进行操作 1.进入到数据库 use dbname 2.针对当前数据库添加用户 权限是针对当前数据 1.添加并验证用户 > use admin > db.addUs ...

  7. Hibernate一对一双向关联映射

    关键原因在于对象模型具有方向性: 单向:一端只能加载另一端,不能反过来. 双向:两端都可以加载另一端. 问题来了:如何我们想从身份证端(IdCard)加载人(Person),怎么办呢? 下面我们开始介 ...

  8. c++空类的大小

    初学者在学习面向对象的程序设计语言时,或多或少的都些疑问,我们写的代码与最终生编译成的代码却大相径庭,我们并不知道编译器在后台做了什么工作.这些都是由于我们仅停留在语言层的原因,所谓语言层就是教会我们 ...

  9. (转)《深入理解java虚拟机》学习笔记5——Java Class类文件结构

    Java语言从诞生之时就宣称一次编写,到处运行的跨平台特性,其实现原理是源码文件并没有直接编译成机器指令,而是编译成Java虚拟机可以识别和运行的字节码文件(Class类文件,*.class),字节码 ...

  10. C#网络编程简单实现通信小例子-1

    1.主界面 2.源程序 Send public partial class formUdpSend : Form { //声明一个UdpClient对象 UdpClient udpClient; pu ...