把开发好的代码,放到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.setHead