当前位置: 代码迷 >> Java Web开发 >> 小第初次接触jsp,这个异常是咋回事.说缺少类定义
  详细解决方案

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

热度:47   发布时间:2016-04-17 16:39:53.0
小第初次接触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)));//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
  相关解决方案