IntelliJ IDEA实现网页生成验证码相关模块:

importcom.sun.image.codec.jpeg.JPEGCodec;importcom.sun.image.codec.jpeg.JPEGImageEncoder;import java.awt.*;importjava.awt.image.BufferedImage;importjava.io.ByteArrayInputStream;importjava.io.ByteArrayOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.util.HashMap;importjava.util.Map;importjava.util.Random;public final classImageUtil {private static final char[] chars = { ‘0‘, ‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘,‘7‘, ‘8‘, ‘9‘, ‘A‘, ‘B‘, ‘C‘, ‘D‘, ‘E‘, ‘F‘, ‘G‘, ‘H‘, ‘I‘};private static final int SIZE = 4;private static final int LINES = 5;private static final int WIDTH = 80;private static final int HEIGHT = 40;private static final int FONT_SIZE = 30;public static MapcreateImage() {

StringBuffer sb= newStringBuffer();

BufferedImage image= newBufferedImage(WIDTH, HEIGHT,

BufferedImage.TYPE_INT_RGB);

Graphics graphic=image.getGraphics();

graphic.setColor(Color.LIGHT_GRAY);

graphic.fillRect(0, 0, WIDTH, HEIGHT);

Random ran= newRandom();for (int i = 1; i <= SIZE; i++) {int r =ran.nextInt(chars.length);

graphic.setColor(getRandomColor());

graphic.setFont(new Font(null, Font.BOLD +Font.ITALIC, FONT_SIZE));

graphic.drawString(chars[r]+ "", (i - 1) * WIDTH /SIZE,

HEIGHT/ 2);

sb.append(chars[r]);

}for (int i = 1; i <= LINES; i++) {

graphic.setColor(getRandomColor());

graphic.drawLine(ran.nextInt(WIDTH), ran.nextInt(HEIGHT),

ran.nextInt(WIDTH), ran.nextInt(HEIGHT));

}

Map map = new HashMap();

map.put(sb.toString(), image);returnmap;

}public staticColor getRandomColor() {

Random ran= newRandom();

Color color= new Color(ran.nextInt(256), ran.nextInt(256),

ran.nextInt(256));returncolor;

}public staticInputStream getInputStream(BufferedImage image)throwsIOException {

ByteArrayOutputStream bos= newByteArrayOutputStream();

JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(bos);

encoder.encode(image);byte[] imageBts =bos.toByteArray();

InputStream in= newByteArrayInputStream(imageBts);returnin;

}

}

生成验证码ImageUtill类

/*** 产生登录页面验证码*/@RequestMapping("/createImage.do")public voidcreateImage(

HttpServletResponse response, HttpSession session)throwsException {

Map imageMap =ImageUtil.createImage();

String code=imageMap.keySet().iterator().next();

session.setAttribute("imageCode", code);

BufferedImage image=imageMap.get(code);

response.setContentType("image/jpeg");

OutputStream ops=response.getOutputStream();

ImageIO.write(image,"jpeg", ops);

ops.close();

}

JSP网页调用(片段,将上面的ceateImage.do放入src中):

验证码:

程序确定是无误的!

可以写成Java程序进行验证图片的生成:

但是:在网页中无法显示验证码图片。错误信息是无法写入Tomcat的temp目录,但temp目录肯定是存在的,原因是写入temp目录必须要管理员权限。

解决方法:

进入tomcat安装目录:C:\Program Files\Apache Software Foundation\Tomcat 8.5

右击temp属性:

对所有用户勾选所有权限,问题解决!!!

java 验证码图片不显示图片_验证码图片生成及无法显示问题的解决相关推荐

  1. java图片不失真压缩_(转)图片等比压缩,确保不失真

    importjava.awt.Image;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.FileOutputS ...

  2. java 微信图片盗链破解_隐藏图片地址,伪造来路Referer实现绕过微信图片的防盗链机制...

    最近用软件采集微信公众号文章图片下载不了,全是显示盗链图片.没有办法只好上网查询有没有办法解决.在一个朋友那看到了2种解决方案记录下: 微信防盗链 用php写一个绕过的代码,你只需要把php上传到你的 ...

  3. java swing 图片上加热点_外卖图片品牌全靠P,4元成本料理包加热后,平台上20元卖出...

    现代人都十分的忙绿,忙着学业.工作.婚姻.家庭等等一系列的事情,因而追求便利便成理所应当的事情.外卖的出现极大的减少了迫切需要时间的现代人的吃饭的时间,因此外卖的火爆就足以预见.但是,最近有一外卖黑作 ...

  4. java把图片存入文件夹_将图片保存在指定文件夹中

    我可以通过我的代码将图片保存在我想要的文件夹中,但这还不够好,因为我的代码在我的文件夹中提供了一个图像副本,而在图库中提供了另一个图像(DCIM) . 代码: Btngetdata.setOnClic ...

  5. php图片写入带问号_关于编码:PHP输出显示带有问号的黑色小菱形

    我正在写一个从数据库源中提取的php程序. 某些varchar的引号显示为带有问号的黑色菱形(?,替换字符,我假设来自Microsoft Word文本). 如何使用php去除这些字符? 不要剥去它们, ...

  6. 微信昵称mysql图片不显示不全_带图片的微信用户名称存mysql问题总结

    先直接说两种解决方法,第一种比较烦(其实也没有很烦),第二种简单 1.后台对 用户名这个字段进行 加码 存入到mysql 取出来 再解码呈现 我的项目中 是 nickName 字段进行存储微信头像数据 ...

  7. okhttp3图片压缩上传_支持 图片压缩、PDF压缩 合并 分割的网址、极力推荐、超奈斯...

    今天给大家分享的是一个可以进行图片压缩,PDF文件编辑的好用网址. 名称:docsmall 大家有没有那种因为上传图片时体积过大,需要缩小,但找半天也找不到压缩工具的时候. 这个网址小编用了很长时间了 ...

  8. div图片背景虚化不影响图片上的文字_背景图片模糊,其中文字清晰实现方法总结...

    先上效果图: 之前: 之后: 实现方式: 第一种:两张图片叠加,上面放一个纯白色的,下面放这张清晰的医生的图 第二种:背景图片上面,使用一层遮罩,设计背景色为纯白色,并且是有一定透明度的 背景模糊文字 ...

  9. java显示公式_如何让Excel中只显示公式不计算

    这个是由来已久的问题,但是由于Office安装的时候是显示公式计算结果,并且自动更新的,所以当表格中出现了只显示公式,而不显示计算结果的时候,往往让人手足无措了.在最近的学员中就出现了几个这样的情况, ...

  10. java word文档转PDF xdocreport在centos7生成PDF不显示中文

    关键字:java xdocreport centos7 PDF 中文 不显示 在我的项目中出现了问题 生产(Linux)上就是word转pdf没有汉字显示,只有字母和数字. 因为liunx系统上,没有 ...

最新文章

  1. 操作系统结构-简单体系结构
  2. mysql查询某一时间段之后数据的sql_mysql进阶(十九)SQL语句如何精准查找某一时间段的数据...
  3. c++类的构造函数详解
  4. linux c 线程同步的三种方法
  5. java.net.SocketException四大异常解决方案---转
  6. FFmpeg 中AVPacket的使用
  7. 1.18.3.Flink Catalog介绍、Catalog 定义、Catalog 的实现、Catalog 使用举例
  8. 如何使Putty会话颜色更美观
  9. GitHub 一周热点速览:手撕 LeetCode 一日 Star 破两千
  10. linux acl库编译与使用,linux的ACL-rds数据删除了可恢复吗?-WinFrom控件库|.net开源控件库|HZHControls官网...
  11. F2FS的sysfs调整文件系统参数
  12. 大数据综合实验的踩坑总结(林子雨)
  13. 原理图端口符号_200 一步步开始学习制作PCBamp;PCBA--绘制原理图
  14. LDPY Ghost Win7 64位 纯净自选版 V5.0
  15. Paddle 点灯人 之 Tensor
  16. P1010 [NOIP1998 普及组] 幂次方 题解
  17. 分布式下载方式(二)DHT分布式网络
  18. LeetCode 974. 和可被 K 整除的子数组 | Python
  19. 应届生多次面试失败后的内心独白
  20. iOS app脚手架

热门文章

  1. 国内 OA 办公自动化系统 现状
  2. 变色龙引导r2795
  3. 牛客网Python篇入门编程习题
  4. AspxGridView 排序分组刷新DetailRow的问题
  5. 配置 Exchange ActiveSync 身份验证
  6. 利用U盘制作虚拟软驱加载raid驱动
  7. 科技资讯杂志 科技资讯杂志社科技资讯编辑部2022年第17期目录
  8. android木马的制作方法,实现木马病毒的详细步骤
  9. 对联广告html,Js对联广告代码示例(入门)
  10. html实现个人空间主页(附源码)