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

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!