java 验证码不显示,页面没有显示验证码解决办法
页面没有显示验证码
这是servlet的代码
package web;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class CheckcodeServlet extends HttpServlet {
private int WIDTH= 80;
private int HEIGHT= 30;
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//一、绘图
//step1,创建一个内存映像对象(画布)
BufferedImage image =
new BufferedImage(WIDTH,HEIGHT,
BufferedImage.TYPE_INT_RGB);
//step2,获得画笔
Graphics g = image.getGraphics();
//step3,
Random r = new Random();
//step3,给画笔上一个随机的颜色
g.setColor(new Color(r.nextInt(255),
r.nextInt(255),r.nextInt(255)));
//step4,填充画布
g.fillRect(0, 0, WIDTH, HEIGHT);
//step5,在画布上绘图
//String number = r.nextInt(99999) + "";
String number ="";
//g.setColor(new Color(0,0,0));
for (int i = 0; i
g.setColor(new Color(r.nextInt(255),
r.nextInt(255),r.nextInt(255)));
int h=(int)(HEIGHT*0.3+(HEIGHT*0.7)*r.nextDouble());
g.setFont(new Font(null,Font.ITALIC|Font.BOLD,h));
String str=getNumber(1);
number+=str;
g.drawString(str, i*WIDTH/5, h);
}
//将number 绑定到session上
HttpSession session =request.getSession();
session.setAttribute("number", number);
//step6,设置字体的大小、风格
//g.setFont(new Font(null,
//Font.ITALIC|Font.BOLD,20));
//g.drawString(number, 5, 22);
//加干扰线
for (int i = 0; i
g.setColor(new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255),r.nextInt(255)));
g.drawLine(r.nextInt(WIDTH), r.nextInt(HEIGHT),r.nextInt(WIDTH), r.nextInt(HEIGHT));
}
//二、压缩图片,输出
response.setContentType("image/jpeg");
OutputStream ops =
response.getOutputStream();
//write方法:将原始图片(image)使用
//指定的压缩算法(jpeg)进行压缩,然后
//使用指定的输出流(ops)输出。
ImageIO.write(image, "jpeg",ops);
ops.close();
}/*返回一个指定长度的字符串
要求从A~Z,0~9中随机选取字符
*/
private String getNumber(int size) {
Random r=new Random();
String strs="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+"0123456789";
String number="";
for (int i = 0; i
number+=strs.charAt(r.nextInt(strs.length()));
}
return number;
}
}
jsp中代码
验证码:
换一张
------解决思路----------------------
订!!!!!!!!!!
------解决思路----------------------
路径对不。看看后台请求到了没?
java 验证码不显示,页面没有显示验证码解决办法相关推荐
- Vue通过Axios向后台发送Post请求,浏览器Console提示405,后台显示Get请求不支持--解决办法
Vue通过Axios向后台发送Post请求,浏览器Console提示405,后台显示Get请求不支持–解决办法 问题场景: axios默认是发送get请求,我要给后台发送一组用户填写的表单数据,逻辑简 ...
- Ubuntu连接以太网时显示“设备未托管”的解决办法
Ubuntu连接以太网时显示"设备未托管"的解决办法 故障分析: 电脑之前可能设置过PPOE(有线宽带虚拟拨号),常见为连接校园拨号宽带. 解决办法: 第一步:打开终端 第二步:切 ...
- Linux——Ubuntu安装Fcitx以及Fcitx输入中文不显示候选词框的解决办法
一.安装Fcitx 1.安装Fcitx所需组件 $ sudo apt install fcitx fcitx-tools fcitx-config* fcitx-frontend* fcitx-mod ...
- php怎么显示不了图片,php显示不了图片的解决办法,
php显示不了图片的解决办法PHP不能显示图片的解决方案,Php不能显示图片,因为源代码中除了img输出还有其他输出.解决方法是在调用头之前取消任何输出. 推荐: <PHP视频教程> 具体 ...
- Mac系统中移动硬盘热拔(强制退出)后,在插上不显示移动硬盘的问题和解决办法
Mac系统中移动硬盘热拔(强制退出)后,在插上不显示移动硬盘的问题和解决办法 一.问题描述: 好久没有写博客了,被调研和开题的事情折磨得好久没有写日志和学编程了,现在又到了校招的时间,自己基础好差,感 ...
- 群晖Synology FileStation不显示Share文件夹的解决办法
群晖Synology FileStation不显示Share文件夹的解决办法 症状:群晖FileStation中不显示Share文件夹,但是在控制面板→共享文件夹里却显示Share文件夹 解决办法: ...
- windows网络连接不显示身份验证标签页解决办法
windows网络连接不显示身份验证标签页解决办法 之前发现电脑的本地连接的属性标签页中,没有身份验证这一标签页,导致在公司内网中无法是用网线上网,而无线网又不是很稳定.在网上找了很久都没有找到解决办 ...
- QQ群文件无法正常显示/微信(PC)电脑端公众号文章打开后显示一片空白的解决办法
QQ群文件无法正常显示/微信(PC)电脑端公众号文章打开后显示一片空白的解决办法: [解决办法] 1.打开ie浏览器,右上角类似齿轮的图标,找到Internet选项,打开 2.找到局域网设置 3.把下 ...
- 谷歌浏览器或者采用Chromium内核浏览器,枫树,金山猎豹等等不显示复选框的解决办法
谷歌浏览器或者采用Chromium内核浏览器不显示复选框的解决办法,在网上找了好久可以使用下面方法: 在系统任务栏空白处点右键,然后点击属性,然后点击确定,然后刷新一下网页就好啦. 不要问我为什么, ...
- tftp在put上传的时候显示File not found的解决办法
tftp在put上传的时候显示File not found的解决办法 在linux下,不管使用的是哪一种super-server,inetd或者xinetd,默认情况下TFTP服务是禁用的,所以要修改 ...
最新文章
- eclipse插件 android模拟器,关于eclipse:ADT插件中的android模拟器没有运行
- 当深度学习遇上异构并行计算
- java解析xml文档_Java解析xml文件
- Keywords Search HDU - 2222(AC自动机模板)
- mysql数据库引擎怎么看,值得收藏!
- sql server 2008 r2卸载重装_免费下载:Intouch软件、Windows操作系统、SQL数据库,VB6.0、C#...
- 互联网晚报 | 4月12日 星期二 | ​A股三大指数集体收涨;国产游戏版号时隔8月重启核发;央行开展200亿元7天期逆回购操作...
- Vue2.0史上最全入坑教程(上)—— 搭建Vue脚手架(vue-cli)
- 2299元!荣耀X30 12+256GB大内存版开售:窄边直屏天花板
- Swift3.0P1 语法指南——枚举
- winform倒计时
- 2022QS世界大学学科排名出炉,计算机学科有哪些信息值得关注?
- SpringBoot RESTful API 架构风格实践
- 快速排序(填坑与交换)
- PHP下载远程图片的几种方法总结
- 服务器共享文件打开未响应,win7共享文件夹会话未响应
- 树莓派hwclock命令参数及用法详解--linux显示/设置硬件时钟命令
- 转载的java面试题(值得推荐)
- Linux上重置MySQL密码 错误 ERROR 1045 (28000): Access denied for user ‘‘root‘‘@‘‘localhost‘‘ (using passw...
- bootstrap4 黑底白字导航
热门文章
- python pcl icp_PCL学习笔记二:Registration (ICP算法)
- java编译找不到符号_java编译时找不到符号,怎么处理
- 相机标定—— 张正友标定法(1)
- 学习笔记(10):程序员的数学:微积分-常用导数(二):最常用到的技巧
- 基于有道API的命令行词典(golang版)
- 数据结构之数组的存储
- 微信支付系列(三)之二维码扫码支付
- postman“在Tests中通过data.token获取token失败”的解决方法
- 避免360浏览器极速模式自动填充表单
- 功能测试怎么做?常用功能测试方法总结