这是错
exception javax.servlet.ServletException: Servlet execution threw an exception
root cause java.lang.Error: Unresolved compilation problems: 
Unhandled exception type ClassNotFoundException
Unhandled exception type SQLException
Unhandled exception type SQLException
Unhandled exception type SQLException
Unhandled exception type SQLException
Unhandled exception type SQLException
Unhandled exception type SQLException
Unhandled exception type SQLException servlet.Reg.doPost(Reg.java:40)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
这是源代码
package servlet;import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class Reg extends HttpServlet { public Reg() {
super();
}
public void destroy() {
super.destroy(); 
}
 
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
  doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { String name=request.getParameter("name");
String psw=request.getParameter("psw");
    String email=request.getParameter("email");
    String psw1=request.getParameter("psw1");
    String sql=new String();
    response.setContentType("text/html");
request.setCharacterEncoding("GBK");
PrintWriter out = response.getWriter();    
   try{
    Connection con=getConnection();
            Statement stmt=con.createStatement();
            sql="insert into hy_info values('"+name+"','"+email+"','"+psw+"','')";
            stmt.executeUpdate(sql);         
     out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
     out.println("<HTML>");
     out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
     out.println("  <BODY>");
     out.println("<p>name:"+name+"</p>");
     out.println("<p>psw:"+psw+"</p>");
     out.println("<a href='denglu.jsp'>点击返回</a>");
     out.println("  </BODY>");
     out.println("</HTML>");
           
            stmt.close();
            con.close();
   }catch(Exception e){}
    
    out.flush();
out.close();
}
public void init() throws ServletException {

}
public Connection getConnection()
{
    Connection con=null;
    try
    {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        con=DriverManager.getConnection("jdbc:odbc:myDatabase","sa","");      
        }
    catch(ClassNotFoundException e )
             {
                  e.printStackTrace();
              }
    catch(SQLException e){ e.printStackTrace();}
    
    
    return con;
    
    
    }    
}我是新手,没有多少分...谢谢各位了

解决方案 »

  1.   

    你使用的方式是ODBC桥连接,
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    这一行代码报错,类装载发生错误。建议改为JDBC连接数据库。
      

  2.   

    为什么呢?我在jsp里边编就没有事,拿到servlet里边就出这个错了
      

  3.   

    package servlet;import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.*;
    import sun.jdbc.odbc.JdbcOdbcDriver;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;public class Reg extends HttpServlet { public Reg() {
    super();
    }
    public void destroy() {
    super.destroy(); 
    }
     
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
      doPost(request,response);
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException { String name=request.getParameter("name");
    String psw=request.getParameter("psw");
        String email=request.getParameter("email");
        String psw1=request.getParameter("psw1");
        String sql=new String();
        response.setContentType("text/html");
    request.setCharacterEncoding("GBK");
    PrintWriter out = response.getWriter();    
       try{
        Connection con=getConnection();
                Statement stmt=con.createStatement();
                sql="insert into hy_info values('"+name+"','"+email+"','"+psw+"','')";
                stmt.executeUpdate(sql);         
         out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
         out.println("<HTML>");
         out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
         out.println("  <BODY>");
         out.println("<p>name:"+name+"</p>");
         out.println("<p>psw:"+psw+"</p>");
         out.println("<a href='denglu.jsp'>点击返回</a>");
         out.println("  </BODY>");
         out.println("</HTML>");
               
                stmt.close();
                con.close();
       }catch(Exception e){}
        
        out.flush();
    out.close();
    }
    public void init() throws ServletException {

    }
    public Connection getConnection()
    {
        Connection con=null;
        try
        {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
            con=DriverManager.getConnection("jdbc:odbc:myDatabase","sa","");   
            
            }
        catch(ClassNotFoundException e )
                 {
                      e.printStackTrace();
                  }
        catch(SQLException e){ e.printStackTrace();}    
        return con;
        
        }    
    }
    这个可以运行,不知道差在哪?
      

  4.   

     
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    你使用odbc,但是没有找到jar包,无法加载该类.
      

  5.   

    我的做法是在classpath中加了rt.jar的包,应该是加载包的问题吧