验证码
    1. 本质:图片
    2. 目的:防止恶意表单注册

package com.learn.web.servlet;import javax.imageio.ImageIO;
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 java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;@WebServlet("/checkCodeServlet")
public class CheckCodeServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {int width = 100;int height = 50;//1.创建一对象,在内存中图片(验证码图片对象)BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);//2.美化图片//2.1 填充背景色Graphics g = image.getGraphics();//画笔对象g.setColor(Color.PINK);//设置画笔颜色g.fillRect(0,0,width,height);//2.2画边框g.setColor(Color.BLUE);g.drawRect(0,0,width - 1,height - 1);String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789";//生成随机角标Random ran = new Random();for (int i = 1; i <= 4; i++) {int index = ran.nextInt(str.length());//获取字符char ch = str.charAt(index);//随机字符//2.3写验证码g.drawString(ch+"",width/5*i,height/2);}//2.4画干扰线g.setColor(Color.GREEN);//随机生成坐标点for (int i = 0; i < 10; i++) {int x1 = ran.nextInt(width);int x2 = ran.nextInt(width);int y1 = ran.nextInt(height);int y2 = ran.nextInt(height);g.drawLine(x1,y1,x2,y2);}//3.将图片输出到页面展示ImageIO.write(image,"jpg",response.getOutputStream());}protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request,response);}
}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>/*分析:点击超链接或者图片,需要换一张1.给超链接和图片绑定单击事件2.重新设置图片的src属性值*/window.onload = function(){//1.获取图片对象var img = document.getElementById("checkCode");//2.绑定单击事件img.onclick = function(){//加时间戳var date = new Date().getTime();img.src = "/day15/checkCodeServlet?"+date;}}</script></head>
<body><img id="checkCode" src="/day15/checkCodeServlet" /><a id="change" href="">看不清换一张?</a></body>
</html>

Response_案例4_验证码_点击切换相关推荐

  1. php生成图片验证码代码,PHP生成图片验证码以及点击切换的代码

    这篇文章主要介绍了PHP生成图片验证码实例,同时介绍了点击切换(看不清?换一张)效果实现方法,需要的朋友可以参考下 这里来看下效果: 现在让我们来看下 PHP 代码<?php session_s ...

  2. php点击字切换验证码,PHP生成图片验证码、点击切换实例 Web程序 - 贪吃蛇学院-专业IT技术平台...

    http://www.jb51.net/article/51506.htm 现在让我们来看下 PHP 代码 复制代码代码如下: session_start(); function random($le ...

  3. Response_案例1_路径_绝对路径

    2. 绝对路径:通过绝对路径可以确定唯一资源     * 如:http://localhost/day15/responseDemo2        /day15/responseDemo2      ...

  4. Response_案例1_路径_相对路径

    * 路径写法:     1. 路径分类         1. 相对路径:通过相对路径不可以确定唯一资源             * 如:./index.html             * 不以/开头 ...

  5. Response_案例1_重定向_特点

    1. 完成重定向     * 重定向:资源跳转的方式     * 代码实现:         //1. 设置状态码为302         response.setStatus(302);       ...

  6. click 点击图片不起作用_JavaScript 练手小案例:基于SVG的图片切换效果

    最近太忙了,自动来到rjxy后,不晓得怎么回事,忙的都没时间更博了. 昨天还有个同学跟我说,你好久没更新博客了.. 甚为惭愧~~ 正好12月来了,今天开一篇. 最近上课讲到了 SVG,不晓得同学们理解 ...

  7. 问答项目---登陆验证码点击切换及异步验证验证码

    输出验证方法: public function verify(){$config = array('length' => 2,'reset' => false,'useCurve' =&g ...

  8. 前后端开发bug:python+vue开发图片验证码接口时,刷新浏览器不显示图片验证码,点击以后才可以显示和切换

    现象: 刷新浏览器页面,图片验证码不显示,点击图片验证码区域以后,才能显示也可以切换显示下一个. 排查思路: 调用开发者工具,检查是否向后端发起获取图片验证码请求. 如果生成了图片uuid编号,发送了 ...

  9. python selenium手动输入验证码_案例:selenium实现登录百度(如有验证码,需要手动输入)...

    func.py baidu_login.py中(如有验证码,需要手动输入) # 导入webdriver import os import time import re from lxml import ...

最新文章

  1. pytorch 实现openpose
  2. 设计师必备各类型3D字体图层样式PSD素材
  3. 西工大18秋《C语言程序设计》平时作业,西工大18秋C语言程序设计平时作业答案...
  4. javascript Uncaught ReferenceError: 方法名 is not defined
  5. html下拉框传递参数,HTML通过事件传递参数到js详解及实例
  6. 中挪动正请求第三方支出牌照竖立支出公司
  7. 白话空间统计之二十五:空间权重矩阵(四)R语言中的空间权重矩阵(3):反距离权重
  8. OSChina 周五乱弹 —— 男友手机上存了好多鸡的照片
  9. linux etcfstab文件,Linux中/etc/fstab文件详解
  10. 《Git与Github使用笔记》第8章 github常见操作和常见错误
  11. Java面向对象练习题之计算圆的面积和周长
  12. 世界十大流行编程语言
  13. [英语语法]词法之代词
  14. 【论文阅读】DeepPap: Deep Convolutional Networks for Cervical Cell Classification
  15. 计算机网络发展趋势多元化,探析计算机网络通信技术现状与未来趋势.doc
  16. WORD2010 页眉横线和页面顶端距离相同显示不一样
  17. 文件流下载文件后提示不支持打开该类型文件或文件已损坏
  18. matlab excel 新建sheet,matlab excel的sheet增加,重命名操作
  19. exception java .text_java.text.ParseException
  20. c语言的输出格式之正负号

热门文章

  1. 深入理解Struts2
  2. Openfire4源码部署到eclipse中并编译
  3. iOS FMDB官方使用文档 G-C-D的使用 提高性能(翻译)(转)
  4. Bootstrap3基础 input-group-btn 按钮与输入框 横向组合
  5. 软件包管理 之 Fedora / Redhat 软件包管理指南
  6. 《写给大家看的设计书:实例与创意(修订版)》—1你已经知道多少了?
  7. VirtualBox中出现UUID have already exists 解决方法
  8. js获取checkbox复选框获取选中的选项
  9. 实用 —— PowerCLI (一)
  10. 【Flashback】Flashback Database闪回数据库功能实践