救命啊,各位兄弟,关于验证码的怪问题!
我的验证码jsp在windows下,运行后动态输出验证码图片,一切正常.
可是放到linux服务器上就不能运行,一遇到
Graphics g = image.getGraphics就报错,
我的服务器的jdk是1.4.2,tomcat是4.1.18.
大家帮帮忙吧,谢谢!
下面是源码:
<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
int width=55, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
System.out.println("10");
Graphics g = image.getGraphics();
System.out.println("11");
g.setColor(Color.gray);
g.fillRect(0, 0, width, height);
g.setColor(Color.gray);
g.drawRect(0,0,width-1,height-1);
String rand = "";
Random ram = new Random();
String[] strRand = new String[]{"2","3","4","5","6","7","8","9","a","b","c","d"
,"e","f","g","h","i","j","k","m","n","q","p","r"
,"s","t","u","v","w","x","y","z","A","B","C","D","E"
,"F","G","H","I","J","K","M","N","R","P","Q","S"
,"T","U","V","W","X","Y","Z"};
for(int i=0;i<4;i++)
{
rand += strRand[ram.nextInt(strRand.length)];
}
session.setAttribute("rand",rand);
g.setColor(Color.black);
g.setFont(new Font("Times New Roman",Font.PLAIN,18));
g.drawString(rand,0,15);
Random random = new Random();
g.dispose();
ImageIO.write(image, "JPEG", response.getOutputStream());
%>