在线等的急需解决的问题 关于验证码问题 要看绝对路径,在图片上点右键,看图片的请求路径,直接放到地址栏,看有没有一般是少了contextpath导致的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我照着楼上的大哥说的那么做了 然后就报错误了 java.lang.NullPointerException sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1170) sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:147) sun.awt.FontConfiguration.<init>(FontConfiguration.java:72) sun.awt.windows.WFontConfiguration.<init>(WFontConfiguration.java:24) sun.awt.Win32GraphicsEnvironment.createFontConfiguration(Win32GraphicsEnvironment.java:291) sun.java2d.SunGraphicsEnvironment$1.run(SunGraphicsEnvironment.java:186) java.security.AccessController.doPrivileged(Native Method) sun.java2d.SunGraphicsEnvironment.<init>(SunGraphicsEnvironment.java:94) sun.awt.Win32GraphicsEnvironment.<init>(Win32GraphicsEnvironment.java:73) sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) java.lang.reflect.Constructor.newInstance(Constructor.java:494) java.lang.Class.newInstance0(Class.java:350) java.lang.Class.newInstance(Class.java:303) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:68) java.awt.image.BufferedImage.createGraphics(BufferedImage.java:1141) java.awt.image.BufferedImage.getGraphics(BufferedImage.java:1131) org.apache.jsp.pages.user.code_jsp._jspService(code_jsp.java:70) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) com.bestoe.smeoe.servlet.DoUrlFilter.doFilter(DoUrlFilter.java:109) 发表于:2007-12-10 16:35:584楼 得分:0 要看绝对路径,在图片上点右键,看图片的请求路径,直接放到地址栏,看有没有 一般是少了contextpath导致的 ~~~~~~~~~~~~楼主说的不完全正确亚,我单独运行那个页面会报空指针错误 因为session里面的值是空的。 写的那段程序有问题 ?给你粘贴一段产生图片的代码吧<%@ page contentType="image/jpeg;charset=gb2312" %><%@ page import="java.awt.*"%><%@ page import="java.awt.image.*"%><%@ page import="java.util.*"%><%@ page import="java.io.*"%><%@ page import="com.sun.image.codec.jpeg.*"%><%!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); }%><%System.setProperty("java.awt.headless", "true");//设置页面不缓存response.setHeader("Pragma","No-cache");response.setHeader("Cache-Control","no-cache");response.setDateHeader("Expires", 0);// 在内存中创建图象int width=60, height=20;BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);// 获取图形上下文Graphics g = image.getGraphics();//生成随机类Random random = new Random();// 设定背景色g.setColor(getRandColor(200,250));g.fillRect(0, 0, width, height);//设定字体g.setFont(new Font("Times New Roman",Font.PLAIN,18));//???//g.setColor(new Color());//g.drawRect(0,0,width-1,height-1);// 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到g.setColor(getRandColor(160,200));for (int i=0;i<155;i++){ int x = random.nextInt(width); int y = random.nextInt(height); int xl = random.nextInt(12); int yl = random.nextInt(12); g.drawLine(x,y,x+xl,y+yl);}// 取随机产生的认证码(4位数字)String sRand="";for (int i=0;i<4;i++) { String rand=String.valueOf(random.nextInt(10)); sRand+=rand; // 将认证码显示到图象中 g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//调用函数出来的颜色相同,可能是因为 g.drawString(rand,13*i+6,16);}// 将认证码存入SESSIONsession.setAttribute("rand",sRand);// 图象生效g.dispose();// 输出图象到页面//ImageIO.write(image, "JPEG", response.getOutputStream());JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(response.getOutputStream());encoder.encode(image);%> 使用方法保存文件名称为 image.jsp在程序中<img border=0 src="image.jsp">(引用image.jsp的文件和image.jsp 在同一目录下) ajax返回后session值取不到怎么办? 一名优秀的web程序员是如何成长起来的? Excel导出问题 让复选框提示的边框颜色变细一点?borderColor不行啊 jsp页面调用mediaPlayer时URL中有中文怎么办? 为什么我在JSP页面里面写Class.forName(dbDriver);就可以,但是到了Action里面就说找不到驱动呢? 学习JSP一定要精通JAVAscript语言么? 如果打包成.jar文件!!! 急!急!我要写一个技术白皮书,但不知如何写,其主要格式是什么? 需求支持jsp的空间??? 怎么会这样?这是中毒了么?十万火急!!!!!!1 java新技术
java.lang.NullPointerException
sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1170)
sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:147)
sun.awt.FontConfiguration.<init>(FontConfiguration.java:72)
sun.awt.windows.WFontConfiguration.<init>(WFontConfiguration.java:24)
sun.awt.Win32GraphicsEnvironment.createFontConfiguration(Win32GraphicsEnvironment.java:291)
sun.java2d.SunGraphicsEnvironment$1.run(SunGraphicsEnvironment.java:186)
java.security.AccessController.doPrivileged(Native Method)
sun.java2d.SunGraphicsEnvironment.<init>(SunGraphicsEnvironment.java:94)
sun.awt.Win32GraphicsEnvironment.<init>(Win32GraphicsEnvironment.java:73)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:494)
java.lang.Class.newInstance0(Class.java:350)
java.lang.Class.newInstance(Class.java:303)
java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:68)
java.awt.image.BufferedImage.createGraphics(BufferedImage.java:1141)
java.awt.image.BufferedImage.getGraphics(BufferedImage.java:1131)
org.apache.jsp.pages.user.code_jsp._jspService(code_jsp.java:70)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.bestoe.smeoe.servlet.DoUrlFilter.doFilter(DoUrlFilter.java:109)
要看绝对路径,在图片上点右键,看图片的请求路径,直接放到地址栏,看有没有
一般是少了contextpath导致的
~~~~~~~~~~~~
楼主说的不完全正确亚,我单独运行那个页面会报空指针错误 因为session里面的值是空的。
给你粘贴一段产生图片的代码吧
<%@ page contentType="image/jpeg;charset=gb2312" %>
<%@ page import="java.awt.*"%>
<%@ page import="java.awt.image.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%@ page import="com.sun.image.codec.jpeg.*"%>
<%!
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);
}
%>
<%
System.setProperty("java.awt.headless", "true");
//设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);// 在内存中创建图象
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 获取图形上下文
Graphics g = image.getGraphics();
//生成随机类
Random random = new Random();// 设定背景色
g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);//设定字体
g.setFont(new Font("Times New Roman",Font.PLAIN,18));//???
//g.setColor(new Color());
//g.drawRect(0,0,width-1,height-1);
// 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
g.setColor(getRandColor(160,200));
for (int i=0;i<155;i++)
{
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x,y,x+xl,y+yl);
}// 取随机产生的认证码(4位数字)
String sRand="";
for (int i=0;i<4;i++) {
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
// 将认证码显示到图象中
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//调用函数出来的颜色相同,可能是因为
g.drawString(rand,13*i+6,16);
}// 将认证码存入SESSION
session.setAttribute("rand",sRand);
// 图象生效
g.dispose();// 输出图象到页面//ImageIO.write(image, "JPEG", response.getOutputStream());
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(response.getOutputStream());
encoder.encode(image);
%>
使用方法
保存文件名称为 image.jsp
在程序中<img border=0 src="image.jsp">(引用image.jsp的文件和image.jsp 在同一目录下)