0

this is my login.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--===============================================================================================--> 
 <link rel="icon" type="image/png" href="images/icons/favicon.ico"/>
<!--===============================================================================================-->
 <link rel="stylesheet" type="text/css" href="vendor/bootstrap/css/bootstrap.min.css">
<!--===============================================================================================-->
 <link rel="stylesheet" type="text/css" href="fonts/font-awesome-4.7.0/css/font-awesome.min.css">
<!--===============================================================================================-->
 <link rel="stylesheet" type="text/css" href="fonts/Linearicons-Free-v1.0.0/icon-font.min.css">
<!--===============================================================================================-->
 <link rel="stylesheet" type="text/css" href="vendor/animate/animate.css">
<!--===============================================================================================--> 
 <link rel="stylesheet" type="text/css" href="vendor/css-hamburgers/hamburgers.min.css">
<!--===============================================================================================-->
 <link rel="stylesheet" type="text/css" href="vendor/animsition/css/animsition.min.css">
<!--===============================================================================================-->
 <link rel="stylesheet" type="text/css" href="vendor/select2/select2.min.css">
<!--===============================================================================================--> 
 <link rel="stylesheet" type="text/css" href="vendor/daterangepicker/daterangepicker.css">
<!--===============================================================================================-->
 <link rel="stylesheet" type="text/css" href="css/util.css">
 <link rel="stylesheet" type="text/css" href="css/main.css">
<title>Login</title>
</head>
<body>
<div class="limiter">
  <div class="container-login100">
   <div class="wrap-login100 p-l-85 p-r-85 p-t-55 p-b-55">
    <form action="LoginServlet" method="post" class="login100-form validate-form flex-sb flex-w" >
     <span class="login100-form-title p-b-32">
      Se connecter
     </span>

     <span class="txt1 p-b-11">
      Email
     </span>
     <div class="wrap-input100 validate-input m-b-36" >
      <input class="input100" type="text" name="username" required>
      <span class="focus-input100"></span>
     </div>
     
     <span class="txt1 p-b-11">
      mot de passe
     </span>
     <div class="wrap-input100 validate-input m-b-12" >
      <span class="btn-show-pass">
       <i class="fa fa-eye"></i>
      </span>
      <input class="input100" type="password" name="password" required>
      <span class="focus-input100"></span>
     </div>
     
     <div class="flex-sb-m w-full p-b-48">
      <div class="contact100-form-checkbox">
       <input class="input-checkbox100" id="ckb1" type="checkbox" name="remember-me">
       <label class="label-checkbox100" for="ckb1">
        Remember me
       </label>
      </div>

      <div>
       <a href="#" class="txt3">
        Forgot Password?
       </a>
      </div>
     </div>

     <div class="container-login100-form-btn">
      <button class="login100-form-btn">
       Se connecter
      </button>
     </div>

    </form>
   </div>
  </div>
 </div>
 

 <div id="dropDownSelect1"></div>
 
<!--===============================================================================================-->
 <script src="vendor/jquery/jquery-3.2.1.min.js"></script>
<!--===============================================================================================-->
 <script src="vendor/animsition/js/animsition.min.js"></script>
<!--===============================================================================================-->
 <script src="vendor/bootstrap/js/popper.js"></script>
 <script src="vendor/bootstrap/js/bootstrap.min.js"></script>
<!--===============================================================================================-->
 <script src="vendor/select2/select2.min.js"></script>
<!--===============================================================================================-->
 <script src="vendor/daterangepicker/moment.min.js"></script>
 <script src="vendor/daterangepicker/daterangepicker.js"></script>
<!--===============================================================================================-->
 <script src="vendor/countdowntime/countdowntime.js"></script>
<!--===============================================================================================-->
 <script src="js/main.js"></script>


</body>
</html>

This is DBConnection.java

public class DBConnection {
public static Connection createConnection() {
    Connection con = null;
    String url = "jdbc:mysql://localhost:3306/care?autoReconnect=true&useSSL=false";
    String username = "root";
    String password = "toor";
    try {
        try {
            Class.forName("com.mysql.jdbc.Driver");

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        con = DriverManager.getConnection(url, username, password);
        System.out.println("Post establishing a DB connection - " + con);
    } catch (Exception e) {
        e.printStackTrace();

    }
    return con;
}

} This is loginBean.java

public class LoginBean {
 private String userName;
 private String password;

 public String getUserName() {
 return userName;
 }
 public void setUserName(String userName) {
 this.userName = userName;
 }
 public String getPassword() {
 return password;
 }
 public void setPassword(String password) {
 this.password = password;
 }
}

this is LoginDao.java`

public class LoginDao {

    public String authenticateUser(LoginBean loginBean)
    {
     String userName = loginBean.getUserName();
     String password = loginBean.getPassword();

     Connection con = null;
     Statement statement = null;
     ResultSet resultSet = null;

     String userNameDB = "";
     String passwordDB = "";
     String roleDB = "";

     try
     {
     con = DBConnection.createConnection();
     statement = con.createStatement();
     resultSet = statement.executeQuery("select username,password,role from users");

     while(resultSet.next())
     {
     userNameDB = resultSet.getString("username");
     passwordDB = resultSet.getString("password");
     roleDB = resultSet.getString("role");

     if(userName.equals(userNameDB) && password.equals(passwordDB) && roleDB.equals("admin"))
     return "admin_role";
     else if(userName.equals(userNameDB) && password.equals(passwordDB) && roleDB.equals("manager"))
     return "manager_role";
     else if(userName.equals(userNameDB) && password.equals(passwordDB) && roleDB.equals("nece"))
     return "nece_role";
     else if(userName.equals(userNameDB) && password.equals(passwordDB) && roleDB.equals("dona"))
         return "dona_role";
     }
     }
     catch(SQLException e)
     {
     e.printStackTrace();
     }
     return "Invalid user credentials";
    }
    }

This is my servlet LoginServlet:

public LoginServlet() {

}


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
     String userName = request.getParameter("username");
     String password = request.getParameter("password");

     LoginBean loginBean = new LoginBean();

     loginBean.setUserName(userName);
     loginBean.setPassword(password);

     LoginDao loginDao = new LoginDao();
     try
     {
     String userValidate = loginDao.authenticateUser(loginBean);
     if(userValidate.equals("admin_role"))
     {
     System.out.println("Admin's Home");

     HttpSession session = request.getSession(); //Creating a session
     session.setAttribute("admin", userName); //setting session attribute
     request.setAttribute("userName", userName);

     request.getRequestDispatcher("Admin.jsp").forward(request, response);
     }
     else if(userValidate.equals("manager_role"))
     {
     System.out.println("manager's Home");

     HttpSession session = request.getSession();
     session.setAttribute("manager", userName);
     request.setAttribute("userName", userName);

     request.getRequestDispatcher("manager.jsp").forward(request, response);
     }
     else if(userValidate.equals("nece_role"))
     {
     System.out.println("nece's Home");

     HttpSession session = request.getSession();
     session.setMaxInactiveInterval(10*60);
     session.setAttribute("nece", userName);
     request.setAttribute("userName", userName);

     request.getRequestDispatcher("nece.jsp").forward(request, response);
     }
     else if(userValidate.equals("dona_role"))
     {
     System.out.println("dona's Home");

     HttpSession session = request.getSession();
     session.setMaxInactiveInterval(10*60);
     session.setAttribute("dona", userName);
     request.setAttribute("userName", userName);

     request.getRequestDispatcher("dona.jsp").forward(request, response);
     }
     else
     {
     System.out.println("Error message = "+userValidate);
     request.setAttribute("errMessage", userValidate);

     request.getRequestDispatcher("Login.jsp").forward(request, response);
     }
     }
     catch (IOException e1)
     {
     e1.printStackTrace();
     }
     catch (Exception e2)
     {
     e2.printStackTrace();
     }
    } //End of doPost()


}

i tried to login and it says could not initialize class com.mysql.jdbc.Driver and i have no idea where the problem is

this is the exception report:

message Could not initialize class com.mysql.jdbc.Driver

description Le serveur a rencontré une erreur interne qui l''a empêché de satisfaire la requête.

exception 
javax.servlet.ServletException: Could not initialize class com.mysql.jdbc.Driver
    org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:343)
    org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:175)
    java.security.AccessController.doPrivileged(Native Method)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    java.lang.reflect.Method.invoke(Unknown Source)
    org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:288)
    org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:285)
    java.security.AccessController.doPrivileged(Native Method)
    javax.security.auth.Subject.doAsPrivileged(Unknown Source)
    org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:320)
    org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:260)



cause mère 
java.lang.NoClassDefFoundError: Could not initialize class com.mysql.jdbc.Driver
    java.lang.Class.forName0(Native Method)
    java.lang.Class.forName(Unknown Source)
    DBConnection.createConnection(DBConnection.java:12)
    LoginDao.authenticateUser(LoginDao.java:24)
    LoginServlet.doPost(LoginServlet.java:38)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    java.lang.reflect.Method.invoke(Unknown Source)
    org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:288)
    org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:285)
    java.security.AccessController.doPrivileged(Native Method)
    javax.security.auth.Subject.doAsPrivileged(Unknown Source)
    org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:320)
    org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:175)
    java.security.AccessController.doPrivileged(Native Method)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    java.lang.reflect.Method.invoke(Unknown Source)
    org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:288)
    org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:285)
    java.security.AccessController.doPrivileged(Native Method)
    javax.security.auth.Subject.doAsPrivileged(Unknown Source)
    org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:320)
    org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:260)

Please help guys and i appreciate any support

Hado Dif
  • 1
  • 1
  • Look for an earlier exception in your logs. If you get a `NoClassDefFoundError` like this, then there was an earlier exception when the driver was first loaded. That earlier exception will tell us what is wrong. – Mark Rotteveel Aug 15 '19 at 06:18
  • Can my web.xml file cause this kind of error?! – Hado Dif Aug 17 '19 at 15:50
  • I placed all the java files in the default package and i didn't make a web.xml file – Hado Dif Aug 17 '19 at 15:52

1 Answers1

-1

Change com.mysql.jdbc.Driver to com.mysql.cj.jdbc.Driver