在EclipseJavaEE中连接到MySQL

在EclipseJavaEE中连接到MySQL,java,mysql,sql,eclipse,web-applications,Java,Mysql,Sql,Eclipse,Web Applications,我尝试在localhost:8080上登录时出错 我已经连接到一个数据库(mysql),其中包含employee_id和password列,java应用程序将使用这些列来验证登录。但它返回了一个错误。我已经附上了我的所有文件以及下面的错误 Login.java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*; public class Login extends H

我尝试在localhost:8080上登录时出错

我已经连接到一个数据库(mysql),其中包含employee_id和password列,java应用程序将使用这些列来验证登录。但它返回了一个错误。我已经附上了我的所有文件以及下面的错误

Login.java

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class Login extends HttpServlet {

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();

    String employee_id = request.getParameter("employee_id");
    String password = request.getParameter("password");
    if(Validate.checkUser(employee_id, password)) { 
        RequestDispatcher rs = request.getRequestDispatcher("Welcome");
        rs.forward(request, response);
    }
    else
    {
       out.println("Employee ID or Password is incorrect. Please try again.");
       RequestDispatcher rs = request.getRequestDispatcher("index.html");
       rs.include(request, response);
    }
}  


    }
index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login Page</title>
</head>
<body>
<form action="login" method="post">
<h3>
Employee Login
</h3>
<b>Employee ID:</b> <br>
<input type="text"name="employee_id" size="20"><br><br>
<b>Password:</b><br>
<input type="password" name="password" size="20"><br><br>
<input type="submit" value="Login"><br><br>
</form>
</body>
</html>
web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" >

<servlet>
    <servlet-name>login</servlet-name>
    <servlet-class>Login</servlet-class>
</servlet>
<servlet>
    <servlet-name>Welcome</servlet-name>
    <servlet-class>Welcome</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>login</servlet-name>
    <url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Welcome</servlet-name>
    <url-pattern>/Welcome</url-pattern>
</servlet-mapping>

</web-app>

您可以使用以下代码使用Servlet连接数据库。但您必须使用
mysqljdbc
驱动程序或下载Jar来创建bbulid类路径

public class ServletDatabaseConnect extends HttpServlet  
{
protected void doPost(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException
{
    PrintWriter pw=res.getWriter();
    res.setContentType("text/html");        
    String tb=req.getParameter("table");    

    try
    {
         Class.forName("oracle.jdbc.driver.OracleDriver");
         Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","admin");
         Statement st=con.createStatement();
         System.out.println("connection established successfully...!!");     

         ResultSet rs=st.executeQuery("Select * from "+tb);


             while(rs.next())
             {
                 pw.println("<tr><td>"+rs.getInt(1)+"</td><td>"+rs.getString(2)+"</td>"+
                                  "<td>"+rs.getString(3)+"</td></tr>");
             }
         pw.println("</table>");
         pw.close();
    }
    catch (Exception e){
        e.printStackTrace();
    }

}}
公共类ServletDatabaseConnect扩展了HttpServlet
{
受保护的void doPost(HttpServletRequest-req,HttpServletResponse-res)引发ServletException,IOException
{
PrintWriter pw=res.getWriter();
res.setContentType(“文本/html”);
字符串tb=req.getParameter(“表”);
尝试
{
类forName(“oracle.jdbc.driver.OracleDriver”);
Connection con=DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:XE”、“system”、“admin”);
语句st=con.createStatement();
System.out.println(“已成功建立连接…!!”);
结果集rs=st.executeQuery(“从”+tb中选择*);
while(rs.next())
{
pw.println(“+rs.getInt(1)+”+rs.getString(2)+”+
“+rs.getString(3)+”);
}
pw.println(“”);
关闭();
}
捕获(例外e){
e、 printStackTrace();
}
}}

下载mysql jdbc驱动程序并将其添加到classpath@Ramanlfc是的,我有驱动程序,但我不确定要编写的代码。顺便问一下,你能告诉我类和servlet的区别吗?把jar放在
WEB-INF/lib
中,servlet只是java类,它与协议无关,但通常与http
class一起使用。forName()
是多余的nowadays@Ramanlfc当我尝试登录时,它给出了一个错误java.lang.ClassNotFoundException:com.mysql.jdbc.Driver你能检查一下我的代码吗?我将上传它下载:com.mysql.jdbc.Driver jar并将其添加到您的项目中。jar链接:@AnandDwivedi mysql-connector-java-5.1.38-bin.jar已经在我的库中了为什么拒绝回答。?顺便说一句,您的项目库上有jdbc jar吗。另一种方法是右键单击项目-->构建路径-->在库中配置构建路径选项卡,按Add External Jar并选择您的Jar。
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1854)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1703)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at Validate.checkUser(Validate.java:8)
at Login.doPost(Login.java:15)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745) 
public class ServletDatabaseConnect extends HttpServlet  
{
protected void doPost(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException
{
    PrintWriter pw=res.getWriter();
    res.setContentType("text/html");        
    String tb=req.getParameter("table");    

    try
    {
         Class.forName("oracle.jdbc.driver.OracleDriver");
         Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","admin");
         Statement st=con.createStatement();
         System.out.println("connection established successfully...!!");     

         ResultSet rs=st.executeQuery("Select * from "+tb);


             while(rs.next())
             {
                 pw.println("<tr><td>"+rs.getInt(1)+"</td><td>"+rs.getString(2)+"</td>"+
                                  "<td>"+rs.getString(3)+"</td></tr>");
             }
         pw.println("</table>");
         pw.close();
    }
    catch (Exception e){
        e.printStackTrace();
    }

}}