首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

小第初次接触jsp,这个异常是咋回事.说缺少类定义

2012-01-31 
小第初次接触jsp,这个错误是怎么回事.说缺少类定义java.lang.NoClassDefFoundErrorjava.lang.Class.forNam

小第初次接触jsp,这个错误是怎么回事.说缺少类定义
java.lang.NoClassDefFoundError
java.lang.Class.forName0(Native   Method)
java.lang.Class.forName(Class.java:141)
java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62)
java.awt.image.BufferedImage.createGraphics(BufferedImage.java:1041)
java.awt.image.BufferedImage.getGraphics(BufferedImage.java:1031)
org.apache.jsp.randomDigit_jsp._jspService(randomDigit_jsp.java:68)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
代码:
<%@   page   contentType= "image/jpeg "   import= "java.awt.*,java.awt.image.*,java.util.*,javax.imageio.* "   %>
<%!
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=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());


%>  


那到底还需要什么类呢


[解决办法]
你这是生成验证码图片的代码,我正在用一模一样的,代码错误的可能性不大!
还是看看你调用这个文件的代码吧
[解决办法]
randomDigit_jsp.java打开这个文件,看看68行是什么东东,就知道了

热点排行