从定义了main()
类的Java文件创建与SQL的连接正常工作但在Java Servlet中调用doPost()
内的方法将错误抛出为
java.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQLServerDriver
工作代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Connect{
public static void main(String[] args) throws Exception
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://localhost;databaseName=UserDB";
Connection con = DriverManager.getConnection(url,"sa","XXXXXXX");
String query =" SELECT * FROM Login";
Statement myStatement = null;
myStatement = con.createStatement();
ResultSet result = myStatement.executeQuery(query);
while(result.next()){
System.out.println("User name = " + result.getString("userID"));
System.out.println("User password = " + result.getString("userPassword"));
}
}
}
现在在Servlet中使用代码
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String userName= request.getParameter("username");
String password= request.getParameter("password");
try {
if( **new DbQuery().isValidLogin(userName, password)**)
{
response.getWriter().println("Welcome " +userName);
}
else{
response.getWriter().println("Please Enter a valid User name and Password");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
在上面的代码new DbQuery().isValidLogin(userName, password)
中创建了一个DB连接,而Class用作
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
点击上面的行........ ERROR
请帮忙。
答案 0 :(得分:3)
您需要将sqljdbc jar放在应用程序服务器中。例如,如果您使用的是tomcat服务器,请转到已安装tomcat的目录,打开LIB目录并确保在那里存在sqljdbc jar。
答案 1 :(得分:1)
我在Tomcat Server中部署类似的应用程序时遇到了同样的错误。将相关的jdbc jar放在Tomcat的lib文件夹中。它应该工作正常。