你的try ---catch不匹配,也就是有的try没有catch,而有的catch又没有对应的try.
还有你的}也不是匹配的,有的地方差一个},这都是基本的错误“Generated servlet error”,把你的代码对整齐就会看出来了。
还有,JSP代码怎么可能在ASP中运行?我真是晕:-(

解决方案 »

  1.   

    ASP不支持JAVA!!  真是服了你了呀  朋友!
      

  2.   

    to drugon(personal) ( ) 嘿嘿,对不起,是在JSP中运行哈,,你是说JSP页中的,还是bean中的?bean我编译都通过了哈
      

  3.   

    楼主,你对TOCMAT报错的格式还不清楚吗?Generated servlet error:  《-这是错误的类型及程度
    D:\developer\jakarta-tomcat-5.5.1  这一行和下面这一行是说出错是在那个文件中\work\Catalina\localhost\platform\org\apache\jsp\index_jsp.java:33: 'try' without 'catch' or 'finally'
        try {  《-这是说错误具体在文件的那个地方
        ^
    还有,你看见了index_jsp.java:33: 这个字符信息了吗?它告诉你是在index.jsp文件中出现了错误,而且具体的位置是index.jsp对应的servlet文件中的第33行。它之后的内容是告诉你为什么出错了。
    楼主还明白不?
      

  4.   

    drugon(personal) ( ) :“而且具体的位置是index.jsp对应的servlet文件中的第33行”俺的还不懂这句哈,哭,,
      

  5.   

    jsp---》servlet  必须要经过的就是简单的说
    你的index.jsp有代码问题
      

  6.   

    我jsp中就没有servlet啊,用到javabean的地方是这样的:<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <jsp:useBean id="Contact" scope="page" class="paltform.hllpgoa.ContactBean"/>
    <%
       String userid = (String)request.getParameter("userid");
       String password = (String)request.getParameter("userid");
       ResultSet su = Contact.getContact(userid,password);     //取用户名和密码 
       if(su.next()){
            response.sendRedirect("functionselect.jsp");
           }
       else { 
            response.sendRedirect("faillogin.jsp");
           }     }
       
    %>
      

  7.   

    你的try{//some problem will happen}catch(Exception e){//do sth}没有成对!!
      

  8.   

    在TOMCAT中,每一个jsp文件都会最终会编译成一个.java文件,你可以在你的TOMCAT中找,一定有index_jsp.java这个文件。看到错误信息,就可以确定是在哪个文件中出错了,然后再查就方便多了。
      

  9.   

    如果你用Eclipse这个工具的话,你写一个JSP文件,它马上会把它转换成一个Servlet文件的,不过如果楼主是刚学的话,建议不要用过个工具,这个工具配置很麻烦的。
      

  10.   

    if(su.next()){
            response.sendRedirect("functionselect.jsp");
           }
       else { 
            response.sendRedirect("faillogin.jsp");
           }     }//注意这里多了一个}起掉就可以了
      

  11.   

    嘿嘿,快乐着来了,,
    确实多了个},去掉后,现在错误是:HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
    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 java.lang.NullPointerException
    org.apache.jsp.index_jsp._jspService(index_jsp.java:65)
    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)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
      

  12.   

    我在bean里配置的库 ,bean代码:package paltform.hllpgoa;
    import java.sql.*;
    public class ContactBean
    {
      Connection sqlCon=null;//数据库连接对象
      Statement sqlStmt=null;//SQL语句对象
      ResultSet sqlRst=null;//结果对象  public ContactBean(){
        try {           Class.forName("org.gjt.mm.mysql.Driver").newInstance();
            }
        catch(java.lang.ClassNotFoundException e){
               System.err.println("mssql()"+e.getMessage());
            }
        catch(java.lang.InstantiationException e){
               System.err.println("mssql()"+e.getMessage());
            }
        catch(java.lang.IllegalAccessException e){
               System.err.println("mssql()"+e.getMessage());
            }
        
      }
      
      public int Exec(String DataBase, String strSQL)
         {
           String url="jdbc:mysql://localhost/test";--------我一直怀疑这里有问题哈,是什么地址
           String  user="root";
           String password="680505";
           int NumRows=0;
           try{
                 sqlCon =DriverManager.getConnection(url,user,password);
                 sqlStmt =sqlCon.createStatement();//执行SQL语句并获得结果集
                 NumRows =sqlStmt.executeUpdate(strSQL);
                 sqlStmt.close();
                 sqlCon.close(); 
              }
          catch(Exception e) {
                 e.printStackTrace();
              }
          return NumRows;
         }
      
      public ResultSet getContact(String userid,String password)
         {
           try 
            {
              Statement stm=sqlCon.createStatement();
              ResultSet result=stm.executeQuery("select * from userinfo where userid = '"+userid+"' and password = '"+password+"'");
              //根据用户名和密码查询记录
              return result;
                      
            }
          catch(Exception e)
            {
                    
            }
            return null;
                 
         }   
     } 
      

  13.   

    String url="jdbc:mysql://localhost/test";
    好象还有你的数据库的端口号的吧
    一般mysql是3306
      

  14.   

    con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?user=root;password="); 最好单独测一下bean
      

  15.   

    to  tom2005(快乐着) ( ) :咋单独测bean?
      

  16.   

    to 快乐着:
    我是mmjdbc啊,连接方式是我那种格式地吧?D:\developer\mm.mysql.jdbc-1.2c
      

  17.   

    哈哈 我比你还菜 楼主  
    不过 我还会测试bean  :)
      

  18.   

    to huangxi79(hua) :偶就不会,比你白菜哈,咋地//cry谁快帮我把问题解决哈,别留到明年
      

  19.   

    我在bean中加了如下代码: public static void main(String[] args)
    {
       ContactBean c = new ContactBean();
       c.getContact("test","test");
    }
    便衣通过了,没出错
      

  20.   

    java.lang.NullPointerException
    这是错误是说你有些对象在使用之前没有初始化。而且这个错误好象还是你的index.jsp里面的。
      

  21.   

    自己要多动手看看有输出吗 
     public static void main(String[] args)
    {
       ContactBean c = new ContactBean();
    try{
       ResultSet rs = c.getContact("test","test");
    if(rs.next())
    System.out.println(rs.getString(1));
    }
    catch(Exception e){e.printStackTrace();}
    }
      

  22.   

    你的JavaBean逻辑上有问题。
    你在Exec()方法中String DataBase这个参数根本就没有用到,没有用就把这个参数去掉。             sqlStmt.close();
                 sqlCon.close(); 看到了这两句吗?这两句为你下面的getContact(String userid,String password)方法埋下了炸弹,当你在一个文件中如果先调用Exec()方法,然后再调用getContact()方法,那么第二个方法肯定出错,因为sqlCon己经被你关掉了。所以第二个方法是不是正常返回的,报错。而如果你只用getContact()这个方法,那么你的sqlCon又没有初始化,因为它的初始化被你放在getContact()方法中,一个对象在没有初始化前被调用,就会报NullPointerException这个错误。
      

  23.   

    to 快乐着:以下是编译和运行结果,,偶做完这个,打死你,偶都不做了//cry
    E:\jia>javac ContactBean.javaE:\jia>java ContactBean
    Exception in thread "main" java.lang.NoClassDefFoundError: ContactBeanE:\jia>
      

  24.   

    to drugon(personal) :给偶具体代码好不好吗?讲的偶都不懂:(
      

  25.   

    package xxx;
    import java.sql.*;
    public class  DataConnection
    {
    public DataConnection() 
    {
    String driver = "org.gjt.mm.mysql.Driver";
            try
    {
    Class.forName(driver);
            }
    catch(ClassNotFoundException e) 
    { System.out.println("ClassNotFoundException ->"+e);
            }
    }
    public Connection getConnection()
    {
    String url = "jdbc:mysql://localhost:3306/exercise";
    String user = "root";
            String password = "roger";
    return DriverManager.getConnection(url,user,password);
    }
    }
    上面是我自己写的一个简单的连接数据库的JavaBean,你可以看一下。
      

  26.   

    import java.sql.*;
    public class ContactBean
    {
    Connection sqlCon=null;//数据库连接对象
    public ContactBean()
    {
       String url="jdbc:mysql://localhost/test";--------我一直怀疑这里有问题哈,是什么地址
           String  user="root";
           String password="680505";
    try 
    {
    Class.forName("org.gjt.mm.mysql.Driver").newInstance();
    sqlCon =DriverManager.getConnection(url,user,password);
    }
    catch(Exception e)
    {
               System.err.println(e.getMessage());
            }  
    }
    public int Exec(String strSQL)
    {       int NumRows=0;
           try{
                 Statement sqlStmt =sqlCon.createStatement();//执行SQL语句并获得结果集
                 ResultSet NumRows =sqlStmt.executeUpdate(strSQL);
              }
          catch(Exception e) 
     {
                 e.printStackTrace();
              }
          return NumRows;
         }
      
      public ResultSet getContact(String userid,String password)
         {
           try 
            {
              Statement stm=sqlCon.createStatement();
              ResultSet result=stm.executeQuery("select * from userinfo where userid = '"+userid+"' and password = '"+password+"'");
              //根据用户名和密码查询记录
              return result;
                      
            }
          catch(Exception e)
            {
               return null;
            }
                
         }   
     } 
    这是我把你的JavaBean改了一下,你对照起来看看。
      

  27.   

    to 快乐着:是不是编译通过的类运行不起来,就是bean有问题?
      

  28.   


      public ResultSet getContact(String userid,String password)这个方法中应该改成
      public ResultSet getContact(String userid,String password)
      {
      ResultSet result=null;
          try 
          {
            Statement stm=sqlCon.createStatement();
            result=stm.executeQuery("select * from userinfo where userid = '"+userid+"' and password = '"+password+"'");
            //根据用户名和密码查询记录                 
          }
          catch(Exception e)
          {
            return null;
          }
      return result;      
      }
      

  29.   

    哈哈,编译通过的类运行不起来,就是bean有问题除非你运行有问题,bean有问题先照上面的改一下
      

  30.   

    to drugon(personal) ( ) 我的是抄书上的例子的,我看了,那个database是没用到,但是调用这个方法时用到了
      

  31.   

    to tom2005(快乐着) ( ) :不改,一改我看不懂了,,我是抄书上的,好多例子都那么写的,按个Database是在它的方法中没用到,可是别人调用它是用到了,你快拿着自己试一下哈//cry
      

  32.   

    我就奇怪程序中String url="jdbc:mysql://localhost/test“:指什么地址啊?是不是该换成我机器本地的某个地址?
      

  33.   

    楼主,你如果不改你的那个JavaBean,我敢肯定你的程序是通不过的。tom2005(快乐着) :我们还是让楼主好好想想吧。我们说得再多,也得让别人慢慢消化。
      

  34.   

    drugon(personal) ( ) :我问那个test是什么,我抄书上的就那么写那里了,,我的数据库名:hllpgoa你还拉别人一起跑,我都快累晕了//cry
      

  35.   

    to drugon(personal) :按你说的,我加上了 ResultSet result=null;。连编译也不过//cry按你上面的做,没变化,编译过了, bean运行不起来麻烦你自己建个表,就 2个字段,用我的验证一下?//thank
      

  36.   

    test是Mysql中一个默认的数据库,只要你安装MYSQL是典型安装就有的。如果你的那个表是在hllpgoa中的,那就要把它换成hllpgoa,在那个数据库中,就连接那个数据库。jdbc:mysql://localhost:3306/test  这里面jdbc:mysql是驱动协议,localhost是数据库所在的主机的IP地址或是机器的名字,3306是MYSQL数据库的监听端口,test是你要连接的数据库名字。这解释清楚吧。好了,楼主,我们也要下班了,不行的话,明天再说。
    Happy new year !
      

  37.   

    [email protected],还有什么问题可以给我发邮件的。
      

  38.   

    就知道 cry应该每天 happy
      

  39.   

    就知道下班,我的问题难道留到明年吗?//cry