【发布时间】:2018-03-11 08:09:34
【问题描述】:
我已经创建了一个登录和注册页面,但是当点击创建帐户按钮时,数据没有被存储到数据库中。它给出了一个例外,说
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver"
我已经在我的项目中添加了 mysql jar 文件。
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/loginandregister")
public class loginandregister extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String options=request.getParameter("button");
System.out.println(options);
PrintWriter pw=response.getWriter();
if(options.equals("LOGIN")) {
String username=request.getParameter("loginid");
String password=request.getParameter("loginpassword");
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/loginclass","root","root");
PreparedStatement login=conn.prepareStatement("select * from user_info where username=? and userpassword=?");
login.setString(1, username);
login.setString(2, password);
ResultSet rs=login.executeQuery();
if(rs.next()) {
pw.println("Welcome");
pw.println("Welcome"+username);
}else {
pw.println("Error");
}
}
catch (Exception e) {
e.printStackTrace();
}
}
if(options.equals("CREATE ACCOUNT")) {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/loginclass","root","root");
PreparedStatement register=conn.prepareStatement("insert into user_info values (?,?,?,?,?,?)");
String firstname=request.getParameter("fname");
String lastname=request.getParameter("lname");
String email=request.getParameter("email");
String phone=request.getParameter("phone");
String uname=request.getParameter("uname");
String pass=request.getParameter("password");
register.setString(1, firstname);
register.setString(2, lastname);
register.setString(3, email);
register.setString(4, phone);
register.setString(5, uname);
register.setString(6, pass);
register.executeUpdate();
}// try
catch (Exception e) {
e.printStackTrace();
}//catch
}// if create acc.
}// dopost
}//class
【问题讨论】:
-
尝试清理并构建您的项目。还有你用的是哪个服务器?
-
我确实清理了我的项目......没有任何改变......我正在使用 tomcat 服务器@hiren
-
您已经 11 年不需要这行代码了,但您确实需要相关的 JAR 在 CLASSPATH 上。
-
@EJP 这并不完全正确:如果 JDBC 驱动程序与 Web 应用程序一起部署(它在 WAR 内部),则需要显式加载它。仅当驱动程序位于初始(系统)类路径上时,自动加载驱动程序才有效。如果它仅在上下文类路径上,则不会。