http://localhost:8080/myapp/index.jsp的时候却出现了这么奇怪的错误,是缺少API还是什么东西,看不怎么明白!~HTTP Status 500 -type Exception reportmessagedescription The server encountered an internal error () that prevented it from fulfilling this request.exceptionorg.apache.jasper.JasperException: org.apache.jasper.JasperException: org.apache.jasper.JasperException: Unable to load class for JSP
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:565)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:354)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)root causeorg.apache.jasper.JasperException: org.apache.jasper.JasperException: Unable to load class for JSP
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:160)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:326)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)root causeorg.apache.jasper.JasperException: Unable to load class for JSP
    org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:600)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:148)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:326)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)root causejava.lang.ClassNotFoundException: org.apache.jsp.index_jsp
    java.net.URLClassLoader$1.run(Unknown Source)
    java.security.AccessController.doPrivileged(Native Method)
    java.net.URLClassLoader.findClass(Unknown Source)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:134)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
    org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:598)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:148)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:326)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

解决方案 »

  1.   

    上面的问题,是我按下面的做法导致的:
    .安装Tomcat后,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的tomcat安装在c:\tomcat):
      
      CATALINA_HOME=c:\tomcat
      CATALINA_BASE=c:\tomcat
      
      然后修改环境变量中的classpath,把tomat安装目录下的common\lib下的(可以根据实际追加)servlet.jar追加到classpath中去,修改后的classpath如下:
      
      classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet.jar;
      
      接着可以启动tomcat,在IE中访问http://localhost:8080,如果看到tomcat的欢迎页面的话说明安装成功了。
      
      第三步:建立自己的jsp app目录
      
      1.到Tomcat的安装目录的webapps目录,可以看到ROOT,examples, tomcat-docs之类Tomcat自带的的目录;
      2.在webapps目录下新建一个目录,起名叫myapp;
      3.myapp下新建一个目录WEB-INF,注意,目录名称是区分大小写的;
      4.WEB-INF下新建一个文件web.xml,内容如下:
      
      <?xml version="1.0" encoding="ISO-8859-1"?>
      <!DOCTYPE web-app
      PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
      "http://java.sun.com/dtd/web-app_2_3.dtd">
      <web-app>
      <display-name>My Web Application</display-name>
      <description>
      A application for test.
      </description>
      </web-app>
      
      5.在myapp下新建一个测试的jsp页面,文件名为index.jsp,文件内容如下:
      <html><body><center>
      Now time is: <%=new java.util.Date()%>
      </center></body></html>
      
      6.重启Tomcat
      
      7.打开浏览器,输入http://localhost:8080/myapp/index.jsp 看到当前时间的话说明就成功了。
      

  2.   

    安装jdk没有 class环境变量也没问题?
      

  3.   

    如果不使用<%=new java.util.Date()%>能成功访问的话,说明楼主的问题出现在jdk环境变量上面,可能是找不到java.util.Date()方法
      

  4.   

    我的jdk环境变量是
    classpath=E:\Program Files\Java\jdk1.5.0_06\lib\dt.jar;E:\Program Files\Java\jdk1.5.0_06\lib\tools.jar;E:\Program Files\Java\jdk1.5.0_06\lib\tools.jar;E:\Program Files\Java\jre1.5.0_06\lib\rt.jar;E:\Program Files\Tomcat 6.0\lib\servlet-api.jar;
    path=E:\Program Files\Java\jdk1.5.0_06\bin;
    CATALINA_BASE=E:\Program Files\Tomcat 6.0;
    CATALINA_HOME=E:\Program Files\Tomcat 6.0;
    应该是没有问题的!~搞了我很久也找不到问题所在!~