我从字面上尝试了所有可用的解决方案,但都无济于事,我的类路径正确且可以正常工作,我还尝试在servlet目录结构的lib目录中添加mysqlconnector.jar,但无济于事,解决了我的问题。顺便说一下,我没有使用任何IDE,而是通过记事本进行编码,并手动使用tomcat运行servlet程序,IDE中的问题很容易解决,但在记事本中很难解决。通过这种方式,我拥有Apache Tomcat 10安装使用jakarta而不是javax的Java servlet的代码如下:
import java.util.*;
import java.io.*;
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import java.sql.*;
public class loginn extends HttpServlet
{
protected void doGet(HttpServletRequest req,HttpServletResponse res)throws IOException,ServletException
{
res.setContentType("text/html");
PrintWriter out=res.getWriter();
String n=req.getParameter("uname");
String p=req.getParameter("pass");
out.println("<html><head><title>Login detail</title></head><body>");
try
{
out.println("Yo!!!");
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/dad_servlet_assignment1","root","");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from login");
boolean flag=false;
while(rs.next() && !flag)
{
String un=rs.getString("username");
out.println(un);
String pass=rs.getString("password");
if(n.equals(un) && p.equals(pass))
{
flag=true;
break;
}
}
out.println("YO!");
if(flag)
{
out.println("<h1>Login Successful!</h1><br><br>");
out.println("Welcome User: "+n+"<br><br>");
}
else
{
out.println("Invalid Username or password! <br><br>Enter Details Again<br><br>");
RequestDispatcher rd=req.getRequestDispatcher("index.html");
rd.forward(req,res);
}
out.println("</body></html>");
}
catch(Exception e)
{
out.println("Yikes");
out.println("Exception: "+e.getMessage());
}
out.println("</body></html>");
}
}
伙计们,我们非常感谢您的帮助!谢谢你。
解决方案:
通过我自己找到解决方案的方式,我无法找到com.mysql.jdbc.Driver,因为sqlconnector的类路径位于程序文件中,而我的apache类路径位于程序文件中(x 86)因此,我只是在apache tomcat 10的lib中添加了mysqlconnector,然后我所做的就是在环境路径和tada中为mysqlconnector.jar设置了附加路径!我的问题解决了!