1   新建一个web项目   javaweb
2   新建一个servlet 类,RequestServlet,代码如下import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;public class IdentityServlet extends HttpServlet {public static final char[] CHARS = {'2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F',//随机字段字符字典,不包含 0, o, 1, I 等难分辨的字符'G', 'H', 'J', 'k', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};public static Random random = new Random();  // 随机数public static String getRandomString(){   // 获取六位随机数StringBuffer buffer = new StringBuffer();   //字符串缓存for(int i=0; i<6; i++){                       //循环六次buffer.append(CHARS[random.nextInt(CHARS.length)]);}return buffer.toString();}public static Color getRandomColor(){return new Color(random.nextInt(255), random.nextInt(255), random.nextInt(255));}public static Color getReverseColor(Color c){return new Color(255 - c.getRed(), 255 - c.getGreen(), 255 - c.getBlue());}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("image/jpeg");String randomString = getRandomString();request.getSession(true).setAttribute("randomString", randomString);int width = 100;int height = 30;Color color = getRandomColor();Color reverse = getReverseColor(color);BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);Graphics2D q = bi.createGraphics();q.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 16));q.setColor(color);q.drawString(randomString, 18, 20);for(int i=0, n = random.nextInt(100); i<n; i++) {q.drawRect(random.nextInt(width), random.nextInt(height), 1, 1);}ServletOutputStream out = response.getOutputStream();JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);encoder.encode(bi);out.flush();}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {}}servlet 在web.xml中的配置如下:<servlet><servlet-name>IdentityServlet</servlet-name><servlet-class>com.huiti.servlet.IdentityServlet</servlet-class></servlet><servlet-mapping><servlet-name>IdentityServlet</servlet-name><url-pattern>/servlet/IdentityServlet</url-pattern></servlet-mapping>index.jsp页面关键代码<script type="text/javascript">function reloadImage(){document.getElementById('btn').disabled = true;document.getElementById('identity').src = 'servlet/IdentityServlet?ts=' + new Date().getTime();}</script><img alt="" src="servlet/IdentityServlet" id="identity" onload = "btn.disabled=false;"/><input type=button value="换个图片" οnclick="reloadImage()" id="btn"/>部署项目,启动web服务器后,请求 http://127.0.0.1:8080/javaweb 出现结果

Servlet技术,response 生成图片验证码相关推荐

  1. response生成图片验证码

    新建一个java web工程 src 目录下xieyuan包MyServlet.java文件(Servlet文件) package xieyuan; import java.awt.Color; im ...

  2. Java Web学习笔记 3 深入Servlet技术

    第3章 深入Servlet技术 请求-响应模式就是典型的Web应用程序访问过程,Java Web应用程序中,处理请求并发送响应的过程是由一种叫做Servlet的程序来完成的. 请求request,响应 ...

  3. Servlet 3 HttpServletRequest HttpServletResponse 验证码图片 form表单

    目录: HttpServletRequest: 获得请求行 和 客户机信息 获得请求头中referer信息,防止盗链 获得form提交数据 请求重定向 转发 RequestDispatcher.inc ...

  4. Java代码生成图片验证码实现

    介绍一个使用Java代码生成随机图片验证码的示例 可以直接配置成Servlet,在页面直接调用 Java代码随机生成图片验证码 package com.rchm.util.images;import ...

  5. 使用Kaptcha生成图片验证码

    使用Kaptcha生成图片验证码 kaptcha是什么? kaptcha使用步骤 kaptcha代码实例 引入依赖 图片验证码配置类 自定义结果返回类 生成验证码 返回结果枚举 kaptcha是什么? ...

  6. springmvc使用谷歌captcha生成图片验证码,并将验证码图片以二进制流的方式返回给前端(app和pc端都能调用)

    近期对登录注册与获取短信验证码的接口做了安全限制,其中一部分就用到了谷歌的captcha验证码,比如当用户连续三次登陆失败,那么之后的登录请求就需要用户输入谷歌的图形验证码.由于web端和app端调用 ...

  7. 【java图片验证码】Java 服务端生成图片验证码及验证

    Java 服务端生成图片验证码及验证 简介 验证码是防止有人利用机器人自动批量注册.对特定的注册用户用特定程序暴力破解方 式进行不断的登录.灌水.因为验证码是一个混合了数字或符号的图片,人眼看起来都费 ...

  8. Java Servlet 技术简介

    开始之前 关于本教程 在您最喜欢的 Web 浏览器中,您所阅读的页面是如何出现的呢?当登录到您最喜欢的 Web 站点时,该 Web 站点如何知道登录的用户是您?而 Web 零售商又如何接受您的在线订购 ...

  9. JSP+JavaBean+Servlet技术(MVC模型)

    一,Servlet开发 用户在浏览器中输入一个网址并回车,浏览器会向服务器发送一个HTTP请求.服务器端程序接受这个请求,并对请求进行处理,然后发送一个回应.浏览器收到回应,再把回应的内容显示出来.这 ...

最新文章

  1. 关于变量名前面加m的问题
  2. Python-理解装饰器
  3. 分布式 知乎 github_如何使用GitHub本机功能来帮助管理中型分布式团队
  4. 前端学习(478):前端简介2
  5. nodjes 支付宝接口 - 优惠卷
  6. vue2.0 element学习
  7. exchange加mysql_Exchange 事务和Exchange 数据库回顾
  8. mm和mmm编译说明
  9. XML入门的常见问题
  10. 空间权重矩阵构建(Stata代码)
  11. 飞思卡尔单片机KEA128之ADC学习
  12. 计算机 网络发现不了电脑,win10网络发现已关闭网络计算机和设备不可见怎么办?...
  13. 测测是否适合学计算机,大学专业测评:测试自己适合什么专业
  14. Bad Request This combination of host and port requires TLS
  15. 天都云13元1个月便宜VPS,40SSD1核2G内存无限流量
  16. 外部多端口映射Https443端口配置
  17. 802.11ac linux驱动下载,下载的驱动程序Realtek 8811CU Wireless LAN 802.11ac USB NIC 1030.22.0405.2017...
  18. 超级马里奥(待完善)
  19. 300套PPT模板+实习僧20套精选简历+其他各种素材PPT模板(免费分享)
  20. 时光穿梭机(删除文件)

热门文章

  1. npm install命令运行中出现Error: ENOENT: no such file or directory解决方法
  2. fedora 关闭 zram swap
  3. 磷酸铁锂电池使用常规数据
  4. Leetcode 每日一题双题版(2.25+2.24)模拟练细节
  5. js逆向验证码篇之极验4代
  6. python 爬取https://wall.alphacoders.com上的壁纸(入门级别)
  7. 新手:MySQL 左连接 右连接 内连接 全外连接查询数据
  8. 背完这999句,英语口语绝不…
  9. LabVIEW编程LabVIEW开发需要加班吗
  10. 老马群控使用教程之手机设备怎么开启【开发者选项】