Question: How do I get this Java Web application working? The current code, uses Java JSP and Servlets to allow a user to login to their
How do I get this Java Web application working? The current code, uses Java JSP and Servlets to allow a user to login to their account and view credit card data stored in the database. When I run the applicaation I get this error in Netbeans
Authenticate
package SDEV425_HW4;
import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.derby.jdbc.ClientDataSource;
public class Authenticate extends HttpServlet {
// variables private String username; private String pword; private Boolean isValid; private int user_id; private HttpSession session;
/** * Processes requests for both HTTP GET and POST * methods. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); try (PrintWriter out = response.getWriter()) { /* TODO output your page here. You may use following sample code. */ out.println(""); out.println("
"); out.println(""); out.println("Servlet Authenticate"); out.println(""); out.println("
"); out.println("
Servlet Authenticate at " + request.getContextPath() + "
"); out.println("
Results are " + username + "," + isValid + "
"); out.println(""); out.println(""); } }
// /** * Handles the HTTP GET method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); }
/** * Handles the HTTP POST method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Get the post input this.username = request.getParameter("emailAddress"); this.pword = request.getParameter("pfield"); this.isValid = validate(this.username, this.pword); response.setContentType("text/html;charset=UTF-8"); // Set the session variable if (isValid) { // Create a session object if it is already not created. session = request.getSession(true); session.setAttribute("UMUCUserEmail", username); session.setAttribute("UMUCUserID", user_id);
// Send to the Welcome JSP page RequestDispatcher dispatcher = request.getRequestDispatcher("welcome.jsp"); dispatcher.forward(request, response);
} else { // Not a valid login // refer them back to the Login screen
request.setAttribute("ErrorMessage", "Invalid Username or Password. Try again or contact Jim."); RequestDispatcher dispatcher = request.getRequestDispatcher("login.jsp"); dispatcher.forward(request, response); } }
/** * Returns a short description of the servlet. * * @return a String containing servlet description */ @Override public String getServletInfo() { return "Short description"; }//
// Method to Authenticate public boolean validate(String name, String pass) { boolean status = false; int hitcnt=0;
try { ClientDataSource ds = new ClientDataSource(); ds.setDatabaseName("SDEV425"); ds.setServerName("localhost"); ds.setPortNumber(1527); ds.setUser("sdev425"); ds.setPassword("sdev425"); ds.setDataSourceName("jdbc:derby");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement(); String sql = "select user_id from sdev_users where email = '" + this.username + "'"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { user_id = rs.getInt(1); } if (user_id > 0) { String sql2 = "select user_id from user_info where user_id = " + user_id + "and password = '" + this.pword + "'"; ResultSet rs2 = stmt.executeQuery(sql2); while (rs2.next()) { hitcnt++; } // Set to true if userid/password match if(hitcnt>0){ status=true; } }
} catch (Exception e) { System.out.println(e); } return status; }
}
ShowAccount
package SDEV425_HW4;
import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;
// DB resources import java.sql.Connection; import java.sql.Date; import java.sql.ResultSet; import java.sql.Statement; import javax.servlet.RequestDispatcher; import org.apache.derby.jdbc.ClientDataSource;
/** * * @author jim */ public class ShowAccount extends HttpServlet {
// Variable private HttpSession session; // Database field data private int user_id; private String Cardholdername; private String CardType; private String ServiceCode; private String CardNumber; private int CAV_CCV2; private Date expiredate; private String FullTrackData; private String PIN;
/** * Processes requests for both HTTP GET and POST * methods. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8");
session = request.getSession(true); if (session.getAttribute("UMUCUserEmail") == null) { // Send back to login page response.sendRedirect("login.jsp"); } else { // Connect to the Database and pull the data getData(); // Set the Attribute for viewing in the JSP request.setAttribute("Cardholdername", Cardholdername); request.setAttribute("CardType", CardType); request.setAttribute("ServiceCode", ServiceCode); request.setAttribute("CardNumber", CardNumber); request.setAttribute("CAV_CCV2", CAV_CCV2); request.setAttribute("expiredate", expiredate); request.setAttribute("FullTrackData", FullTrackData); request.setAttribute("PIN", PIN); RequestDispatcher dispatcher = request.getRequestDispatcher("account.jsp"); dispatcher.forward(request, response); }
}
// /** * Handles the HTTP GET method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); }
/** * Handles the HTTP POST method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); }
/** * Returns a short description of the servlet. * * @return a String containing servlet description */ @Override public String getServletInfo() { return "Short description"; }//
public void getData() {
try { ClientDataSource ds = new ClientDataSource(); ds.setDatabaseName("SDEV425"); ds.setServerName("localhost"); ds.setPortNumber(1527); ds.setUser("sdev425"); ds.setPassword("sdev425"); ds.setDataSourceName("jdbc:derby");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement(); String sql = "select user_id,Cardholdername, Cardtype," + "ServiceCode, CardNumber,CAV_CCV2,expiredate,FullTrackData,PIN" + " from customeraccount where user_id = " + session.getAttribute("UMUCUserID"); ResultSet rs = stmt.executeQuery(sql); // Assign values while (rs.next()) { user_id = rs.getInt(1); Cardholdername = rs.getString(2); CardType = rs.getString(3); ServiceCode = rs.getString(4); CardNumber = rs.getString(5); CAV_CCV2 = rs.getInt(6); expiredate = rs.getDate(7); FullTrackData = rs.getString(8); PIN = rs.getString(9); }
} catch (Exception e) { System.out.println(e); }
}
}
Here is what the application should look like
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
