编译没通过<%
sSQL = "select * from XXX";//sSQL声明了吗???????????????
Connection conn = null;
Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
conn = java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/cs?useUnicode=true&characterEncoding=gb2312","root","");
Statement stat=conn.createStatement();
ResultSet rest=null;
rest=stat.executeQuery(sSQL);
%>

解决方案 »

  1.   

    我用这段:< %@ page contentType="text/html;charset=gb2312"% > 
    < %@ page import="java.sql.*"% > 
    < html > 
    < body > 
    < %Class.forName("com.mysql.jdbc.Driver").newInstance(); 
    String url ="jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=8859_1" 
    Connection conn= DriverManager.getConnection(url); 
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    String sql="select * from test"; 
    ResultSet rs=stmt.executeQuery(sql); 
    while(rs.next()) {% > 
    您的第一个字段内容为:< %=rs.getString(1)% > 
    您的第二个字段内容为:< %=rs.getString(2)% > 
    < %}% > 
    < %out.print("数据库操作成功,恭喜你");% > 
    < %rs.close(); 
    stmt.close(); 
    conn.close(); 
    % > 
    < /body > 
    < /html >
    得到的错误还是一样的:
    type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSP
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:97)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:346)
    org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:434)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:492)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:471)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:459)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
    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)
    root cause Compile failed; see the compiler error output for details.
    org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:938)
    org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:758)
    org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:402)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:492)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:471)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:459)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
    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)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.0.29 logs.
      

  2.   

    是啥环境,编译一下,看看有什么错
    如果是jb,project->make "aaa.jsp";看看报什么错误
    我给你改好了,错误太多了阿
    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="java.sql.*"%>
    <html>
    <body>
    <%Class.forName("com.mysql.jdbc.Driver").newInstance();
    String url ="jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=8859_1";
    Connection conn= DriverManager.getConnection(url);
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    String sql="select * from test";
    ResultSet rs=stmt.executeQuery(sql);
    while(rs.next()) {%>
    您的第一个字段内容为:<%=rs.getString(1)%>
    您的第二个字段内容为:<%=rs.getString(2)%>
    <%}%>
    <%out.print("数据库操作成功,恭喜你");%>
    <%rs.close();
    stmt.close();
    conn.close();
    %>
    </body>
    </html>
      

  3.   

    你的user=root&password=&useUnicode=true&characterEncoding=8859_1";后面没有分号。!!!!!
    而且不要让< %中间有个空格
      

  4.   

    错误依旧,应该不是程序代码的问题了吧,会不会是我JDBC和环境变量还是有问题呢?
      

  5.   

    错误不可能依旧,我这里都没有那个错误了。
    如果是jdbc就不应该抱刚才的错误了
      

  6.   

    还是这个:type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSP
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:97)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:346)
    org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:434)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:492)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:471)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:459)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
    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)
    root cause Compile failed; see the compiler error output for details.
    org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:938)
    org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:758)
    org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:402)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:492)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:471)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:459)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
    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)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.0.29 logs.
      

  7.   

    我来描述一下我的问题吧,比如说我的TOMCAT 的JSP-EXANPLE在没有改变目录的情况下都是可以执行的,然后我放到我ROOT这个文件夹里运行(或者其他任何文件夹),报的错误都是相同的,这究竟是什么问题呢?
      

  8.   

    你的情况好像是JSP不能编译,应该将jdk下的LIB下的dt.jar,tools.jar拷到TOMCAT下COMMON下的LIB中,重启TOMCAT就可以了
      

  9.   

    环境变量的问题~ 不要污染环境变量CLASSPATH
      

  10.   

    "不要污染环境变量CLASSPATH"是什么意思呢?
      

  11.   

    环境变量CLASSPATH应该设哪几个?
      

  12.   

    import java.sql.*;
    import java.util.*;
    /**
     *\u00CA\u00FD\u00BE\u00DD\u00C1\u00AC\u00BD\u00D3\u00C0à
     */public class DBConn {
      private String userid = "sa";
      private String conn_str = "jdbc:microsoft:sqlserver://127.0.0.1:1433;SelectMethod=Cursor;DatabaseName=EnterCenter";
      private String pwd = "";
      private String classFor = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
      public Connection dConn = null;
      
      java.util.Vector batchSQL = new java.util.Vector();
      public DBConn() {
        try {      Class.forName(classFor);
          dConn = DriverManager.getConnection(conn_str, userid, pwd);
          //System.out.println("Database connection is connected ! ");
        }
        catch (Exception ex) {
          System.out.println("Database connection is not connected ! ");
          System.out.println("DBConn.DBConn"  + ex.toString()) ;    }
      }
    你对比看看,如果有问题的话,是不是你的sqlserver的驱动没有加到tomcat
      

  13.   

    我用的不是SQLSERVER,我用的是MYSQL SERVER。
      

  14.   

    将mysql的驱动拷贝到tomcat/commons/lib下,或者是你自己应用目录,比如ROOT的WEB-INF/lib下,lib没有就自己新建一个,然后重启服务器,ok。
      

  15.   

    给楼主处理这种问题的方法: 排除法,你去掉所有的jsp页面中的代码,看能否编译?然后逐渐地增加,看到哪里发生错误,找到错误地相关信息,看能否解决?如果还不能解决,贴出那段代码...
      

  16.   

    Unable to compile class for JSP
    应该是你的配置问题