简体   繁体   English

在Eclipse Java EE中连接到MySQL

[英]Connect to MySQL in eclipse java ee

I'm getting an error when I try to log on at localhost:8080 尝试登录localhost:8080时出现错误

I've connected to a database (mysql) which contains employee_id and password columns which the java application will check with to validate the login. 我已经连接到数据库(mysql),其中包含employee_id和password列,java应用程序将使用该列进行验证以验证登录名。 But it is returning an error. 但是它返回一个错误。 I have attached all my files below as well as the error. 我已附上我所有的文件以及错误。

Login.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 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>

Validate.java Validate.java

import java.sql.*;
public class Validate
{
public static boolean checkUser(String employee_id, String password)
{
    boolean st = false;
    try { 
        Class.forName("com.mysql.jdbc.Driver"); 

        Connection con =      DriverManager.getConnection("jdbc:mysql://localhost:3306/payroll", "root", ""); 
        PreparedStatement ps = con.prepareStatement("select * from employee_login where employee_id =? and password = ?");
        ps.setString(1, employee_id);
        ps.setString(2, password);
        ResultSet rs =ps.executeQuery();
         st = rs.next();

     }catch(Exception e)
      {
          e.printStackTrace();
      }
         return st;                 
  }   
}

web.xml 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>

AND I"M GETTING THIS ERROR WHEN I TRY TO LOG IN: 并且我在尝试登录时遇到此错误:

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) 

You Can Connect Database Using Servlet Using This Code. 您可以使用此代码使用Servlet连接数据库。 But You Must have to Bbbbbbulid class Path Using mysqljdbc Driver or download Jar . 但是您必须必须使用mysqljdbc Driver来Bbbbbbulid类Path或下载Jar。

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();
    }

}}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM