JDBC: Lab 3

					

package com.annedirkse;

import java.sql.*;
import java.util.List;

public class UserManager {
    private static UserManager ourInstance;

    public synchronized static UserManager getInstance() {
        if (ourInstance == null) {
            ourInstance = new UserManager();
        }
        return ourInstance;
    }

    public boolean addUser(String username, String password) {
      ConnectionManager conMan = ConnectionManager.getInstance();
      String sql = "insert into users(username, password)" +
		 "values('"+username+"','"+password+"')";
        try {
          Connection con = conMan.getConnection();
          Statement state = con.createStatement();
            int i = state.executeUpdate(sql);
            if (i > 0) {
               return true;
            }
        }
        catch(SQLException e) {
            e.printStackTrace();
        }
        return false;
    }

    public boolean usernameExists(String username) {
     String sql = "select count(*) from users where username = ?";
     try {
       ConnectionManager conMan = ConnectionManager.getInstance();
         Connection con = conMan.getConnection();
         PreparedStatement ps = con.prepareStatement(sql);
         ps.setString(1, username);
         ResultSet rs = ps.executeQuery();
         while(rs.next()) {
           if (rs.getInt(1) > 0) {
             return true;
           }
         }
     }
     catch(SQLException e) {
       e.printStackTrace();

     }
      return false;
    }

    public boolean isValidLogin(String username, String password) {
     String sql = "select count(*) from users " +
                  "where username = ? and password = ?";
     try {
       ConnectionManager conMan = ConnectionManager.getInstance();
         Connection con = conMan.getConnection();
         PreparedStatement ps = con.prepareStatement(sql);
         ps.setString(1, username);
         ps.setString(2, password);
         ResultSet rs = ps.executeQuery();
         while(rs.next()) {
           if (rs.getInt(1) > 0) {
             return true;
           }
         }
     }
     catch(SQLException e) {
       e.printStackTrace();
     }
      return false;
    }
    public static void main(String[] args) {
     UserManager userMan = UserManager.getInstance();
     System.out.println(userMan.usernameExists("anne"));
     
    }
    private UserManager() {
    }
}


package com.annedirkse;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import java.io.IOException;


public class LogIn extends HttpServlet {
  public void doPost(HttpServletRequest request, 
                     HttpServletResponse response)
              throws ServletException, IOException{
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    UserManager userMan = UserManager.getInstance();
     ServletContext sc = this.getServletContext(); 
     RequestDispatcher rd;
      if(userMan.isValidLogin(username, password)) {        
        rd = sc.getRequestDispatcher("/products.html");
      }
     else {
        request.setAttribute("errorMessage", "Invalid Login");
        rd = sc.getRequestDispatcher("/login.jsp");
      }
    rd.forward(request, response);
  }
}


<html>
   <head><title></title></head>
   <body>

   <% String message = (String)request.getAttribute("errorMessage");
      if (message != null) {  %>
       <%=message%>
   <% } %>

     <form action="login" method="POST">
        <input type="text" name="username">
        <input type="password" name="password">
        <input type="submit" value="Log In">
     </form>
   </body>
</html>