【发布时间】:2017-05-17 05:16:10
【问题描述】:
我正在 IntelliJ IDEA Ultimate 中创建一个 Java Web 项目。我有一个类,它的方法接受两个字符串作为输入,查询数据库并返回一个 int 值。 (这是一种登录方法 - 接受用户名和密码 - 如果它们有效,它应该返回用户 ID 的 int,否则返回 0)。
我通过使用 main 方法从“Tester”类调用它来测试此方法,它返回了预期值。但是,当从 jsp 页面调用此方法时,它会为我的 SQL 驱动程序 (com.sql.jdbc.Driver) 提供一个 ClassNotFound 异常。 (我知道是这个方法给了我错误,因为我添加了一个 System.out.println 来调试它)
为什么我只在从我的 jsp 页面调用方法时收到此错误?我该如何解决这个问题?
我在控制台中得到的确切错误:
LogIn method error java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
让我痛苦的登录方法:
public static int logIn(String username, String password) {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/my_database", "root",
"password12345");
Statement stmt = con.createStatement();
ResultSet users = stmt.executeQuery("SELECT * FROM users");
ArrayList<User> userList = new ArrayList<User>();
while (users.next()) {
userList.add(
new User(users.getInt("id"), users.getString("username"), users.getString("password"),
users.getString("full_name"),
users.getString("email"), users.getInt("admin") == 1));
}
for (int i = userList.size() - 1; i >= 0; i--) {
if (username.equals(userList.get(i).getUserName()) && userList.get(i).testPassword(password)) {
System.out.println(userList.get(i).getId());
return userList.get(i).getId();
}
}
return 0;
} catch (Exception e) {
System.out.println("LogIn method error " + e);
return 0;
}
}
JSP 页面:
<%@ page import="com.neilbanerjee.SupportMeLogic,java.sql.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
int loggedInID = MyOtherClass.logIn(request.getParameter("username"), request.getParameter("password"));
com.neilbanerjee.User loggedIn;
if (loggedInID == 0) {
loggedIn = null; %>
<%--<jsp:forward page="index.jsp"></jsp:forward>--%>
<%
} else {
loggedIn = MyOtherClass.loggedInUser(loggedInID);
}
%>
<html>
<head>
<title>SupportMeDevices</title>
</head>
<body>
Welcome, <% out.print(loggedIn.getFullName());%>!
</body>
</html>
【问题讨论】:
-
因为 JDBS 驱动 jar 文件不在您部署的 war 文件中的 WEB-INF/lib 下,因此不在您的 webapp 的运行时类路径中。
标签: java jsp jdbc intellij-idea