java.lang.ClassNotFoundException:位于jdbc.DatabaseAccess.doGet(DatabaseAccess.java:25)
我正在尝试使用servlet和jdbc连接到MySQL数据库的简单登录身份验证。在tomcat服务器上执行后,出现以下错误: 我正在共享所有文件的内容: DatabaseAccess.javajava.lang.ClassNotFoundException:位于jdbc.DatabaseAccess.doGet(DatabaseAccess.java:25),java,mysql,servlets,jdbc,Java,Mysql,Servlets,Jdbc,我正在尝试使用servlet和jdbc连接到MySQL数据库的简单登录身份验证。在tomcat服务器上执行后,出现以下错误: 我正在共享所有文件的内容: DatabaseAccess.java package jdbc; import java.io.*; import javax.servlet.*; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; import java.sql.*; @WebS
package jdbc;
import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.sql.*;
@WebServlet("/DatabaseAccess")
public class DatabaseAccess extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
String title = "Database connect";
String docType ="<!doctype html>\n";
out.println(docType +"<html>\n" +"<head><title>" + title + "</title></head>\n" +"<body>\n" +
"<h1 align=\"center\">" + title + "</h1>\n");
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","root");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from student");
while(rs.next()){
int id = rs.getInt("id");
int marks = rs.getInt("marks");
String name = rs.getString("name");
out.println("ID: " + id + "<br>");
out.println(", name: " + name + "<br>");
out.println(", marks: " + marks + "<br>");
}
out.println("</body></html>");
rs.close();
stmt.close();
con.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>servelt</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
<servlet>
<servlet-name>DatabaseAccess</servlet-name>
<servlet-class>jdbc.DatabaseAccess</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DatabaseAccess</servlet-name>
<url-pattern>/DatabaseAccess</url-pattern>
</servlet-mapping>
</web-app>
请帮我解决这个问题。将mysql连接器jar添加到要由tomcat加载的WEB-INF\lib文件夹中异常是针对java.lang.ClassNotFoundException:将相应的jar添加到lib文件夹或类路径中您的源代码是正确的。异常显示,mysql连接器不在您的库中。您必须将mysql jdbc连接器添加到应用程序类路径和WEB-INF/lib中。如果仅添加类路径并单独运行任何方法,则不会发生异常,但如果调用此方法,将从servlet或jsp中得到错误。对于解决方案,您还必须将mysql jdbc连接器jar添加到WEB-INF/lib中
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>servelt</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
<servlet>
<servlet-name>DatabaseAccess</servlet-name>
<servlet-class>jdbc.DatabaseAccess</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DatabaseAccess</servlet-name>
<url-pattern>/DatabaseAccess</url-pattern>
</servlet-mapping>
</web-app>