package zh.zyz.ruling001;import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Denglu extends HttpServlet {

private PreparedStatement ps = null;

private Connection conn = null;

private ResultSet rs = null;

private String searchByID(String ID){
String PASSWORD = null;
String sql = "SELECT PASSWORD FROM USERS WHERE USERID = '"+ID+"'";
     try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()){
PASSWORD = rs.getString(1);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return PASSWORD;
}
public void destroy() {
super.destroy(); // Just puts "destroy" string in log

if(ps != null){
try {
ps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

if(rs != null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

if(conn != null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("UTF-8"); String ID = request.getParameter("userid");
String pssword = request.getParameter("password");
String pass = searchByID(ID);
System.out.println(ID);
System.out.println(pssword);
System.out.println(pass);
} @Override
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
super.init(config);
    String url = "jdbc:oracle:thin:@localhost:1521:oracle";
String user = "scott";
String password = "tiger";
    try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, user, password);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
conn = null;
}
}
}为什么会总是出现异常呢java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1352)
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
 at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
 at java.lang.Class.forName0(Native Method)
 at java.lang.Class.forName(Class.java:169)
 at zh.zyz.ruling001.Denglu.init(Denglu.java:97)
 at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)
 at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:757)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:130)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
 at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
 at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
 at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
 at java.lang.Thread.run(Thread.java:619)

解决方案 »

  1.   


    java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
    你的驱动考到相应目录了吗? 
      

  2.   

    Class.forName("oracle.jdbc.driver.OracleDriver");
    这行代码的意思是找到OracleDriver这个类,你的工程中肯定找不到这个类啊。。
    conn = DriverManager.getConnection(url, user, password);
    也就是Oracle连接数据库的jar包
    classes12.jar和ojdbc.jar其中一个放到工程的lib目录下就可以了
    classes12.jar在Oracle的安装目录下就有
      

  3.   

    可是我已经导入了这个包啊是不是在web工程中要注意一些什么啊,我首先写了一个vodao测试了,可以提取到数据,可是一到servlet中就不行了
      

  4.   

    连接的url后面的一个字符串可以随便改吗,我一直用的oracle这个是与什么有关的啊
      

  5.   

    驱动jar包没放到classpath或者lib里头吧。
      

  6.   

    驱动jar包没放到classpath或者lib里头,或者没有设置好参数