网站java验证码不显示_jsp验证码无法显示
把开发好的代码,放到Linux服务器上面,有的Linux服务器可以显示,有的没有显示。
经过对比,发现该问题更深一步是这样:
1 如果以init 5的级别启动centos系统,再启动tomcat,在客户端浏览器上查看验证码图形显示正常;
2 如果以init 3的级别启动centos系统,再启动tomcat,在客户端浏览器上查看验证码图形显示显示为小红叉;
这是很重要的结论,这个错误是因为图表程序是通过AWT实现的,AWT会调用操作系统本地窗口资源绘图,windows对此支持很好,
在linux下如果没有进到X window,AWT就不能绘图。
代码如下
java.awt.image.*,java.util.*,javax.imageio.*" pageEncoding="GB18030"%>
Color getRandColor(int fc,int bc){//给定范围获得随机颜色
Random random = new Random();
if(fc>255) fc=255;
if(bc>255) bc=255;
int r=fc+random.nextInt(bc-fc);
int g=fc+random.nextInt(bc-fc);
int b=fc+random.nextInt(bc-fc);
return new Color(r,g,b);
}
%>
//设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
// 在内存中创建图象
int width=48, height=14;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 获取图形上下文
Graphics g = image.getGraphics();
//获取输出流:
OutputStream os=response.getOutputStream();
……………………………………………………
%>
执行到这一行的时候报错Graphics g = image.getGraphics();
报的错误如下:
有的服务器出现的是,Error 请联系系统管理员
有的服务器是报下面的错误:
org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
第一种方法加入:-Djava.awt.headless=true ,没有解决
在catalina.sh中,450行左右加入
-Djava.awt.headless=true \
加了之后是报别的错误
org.apache.jasper.JasperException: javax.servlet.ServletException: java.awt.AWTError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.
javax.servlet.ServletException: java.awt.AWTError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.
java.awt.AWTError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.
】
第二种方法:在catalina.sh文件里面加入,可以顺利解决
export CATALINA_OPTS="-Djava.awt.headless=true"
网站java验证码不显示_jsp验证码无法显示相关推荐
- java生成验证码实例_Java生成验证码功能实例代码
页面上输入验证码是比较常见的一个功能,实现起来也很简单.给大家写一个简单的生成验证码的示例程序,需要的朋友可以借鉴一下. 闲话少续,直接上代码.代码中的注释很详细. package com.SM_te ...
- linux下tomcat6无法显示图片验证码 少了图形插件
linux下tomcat6无法显示图片验证码(windows下显示正常) 原创 2015年10月20日 10:31:47 3526 linux下tomcat6无法显示图片验证码(windows下显示正 ...
- JAVA 实现发送邮件功能——邮箱验证码
JAVA 实现发送邮件功能--邮箱验证码 在学习 Java 的过程中,由于项目需要使用邮箱验证码功能,所以进行了较为深入的学习,在这里写一下这个功能的实现方式. 首先 想要使用 Java 实现发送邮件 ...
- 网站app注册登录短信验证码是怎么获取实现的
在我们的生活中,经常会遇到(www.yunxintong100.com)需要手机注册,手机验证,手机修改密码的时候,而这些操作都会收到手机验证码来进行身份验证,这样做的目的不仅是为了保护用户的安全使用 ...
- java redis 发送短信验证码
public class Randomutil { private Randomutil() { } // 获取6位随机验证码 public static String getRandom() { S ...
- java 实现发送短信验证码(网易云)
链接:https://pan.baidu.com/s/1saRmzciNQWpFxHJRN0ISTg 密码:siyt 实现发送验证码的工程下载 1.我们打开这个工程,查看其中的代码 package c ...
- Java生成图片验证码(有点仿QQ验证码的意思)
看了挺多图片验证码的代码,感觉没什么长的好看点的,就自己动手写了个,写完发现跟QQ的有几分相似,比较满意. 功能包括:自定义图片尺寸和字符长度,随机背景颜色和字符颜色,随机字符偏移角度,字符平滑边缘, ...
- 最简单Java实现QQ邮箱发送验证码
Java使用QQ邮箱发送验证码 1. 开启服务,获取授权码 需登录自己的QQ邮箱,打开 POP3/SMTP 服务,并获取授权码. 具体操作: 登录邮箱 邮箱首页 "设置" 选择 & ...
- 使用java实现手机短信验证码
使用java实现手机短信验证码 一.配置第三方短信接口 二.代码部分 三.效果展示 一.配置第三方短信接口 我们使用阿里云的短信服务(可以免费体验) 阿里云 进入阿里云的官网,查找短信服务,点击短信控 ...
- java实现随机字母数字验证码
生成随街验证码 VerifyCode 工具类 package com.meeno.common.cerifycode;import javax.imageio.ImageIO; import java ...
最新文章
- 一位中国博士把整个 CNN 都给可视化了,可交互有细节,每次卷积 ReLU 池化都清清楚楚...
- matlab verilog 接口,使用SystemVerilog简化FPGA中的接口
- RANSAC算法做直线拟合
- C#中获取指定路径下指定后缀名的所有文件的路径的list
- poj 2983 Is the Information Reliable?
- Shell判断参数是否为数字的6种方法(是否为整形)
- Jmeter(三)断言和关联
- 接口、抽象类、类之间的关系
- stb_image 读写
- mac asp.net 服务器文件路径,asp.net如何获取服务器ip与mac地址
- 基于云端的通用权限管理系统,SAAS服务,基于SAAS的权限管理,基于SAAS的单点登录SSO,企业单点登录,企业系统监控,企业授权认证中心...
- Latex:利用BibTeX批量导入参考文献
- 上传本地文件到服务器:not a regular file
- 计算机网络学习之物理层篇
- C++ 通讯录管理系统
- python爬不同图片分别保存在不同文件夹中的实现
- 抖音直播新号怎么起号?抖音直播间不进人怎么办?
- 互联网实习面试的一些心得(非计算机专业)
- machine learning分类方法的详细总结
- LabVIEW编程LabVIEW开发 十六进制转换ASCII例程与相关资料