import java.io.*;
import java.sql.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class AddToCart extends HttpServlet {
public void doGet (HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost (HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String cno[] = request.getParameterValues("customerId");
String uAccess[] = request.getParameterValues("uAccess");
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch(ClassNotFoundException e){
out.println("Error loading the Driver:"+e.getMessage());
return;
}
Connection conn = null;
try {
conn = DriverManager.getConnection (
MyUtilities.CONNECTSTRING,MyUtilities.ID,MyUtilities.PASSWORD);
} catch (SQLException e1) {
out.println("Error connecting to Oracle:"+e1.getMessage());
return;
}
if (conn == null) {
out.println("Null Connection");
return;
}
Statement stmt = null;
try {
stmt = conn.createStatement ();
} catch (SQLException e) {
out.println("createStatement " + e.getMessage());
try {conn.close();} catch (SQLException e2) {};
return;
}
ResultSet rset = null;
String query0 = "select u_access from customers where cno='"+ cno[0]+"'";
try {
rset = stmt.executeQuery(query0);
} catch (SQLException e) {
out.println("executeQuery " + e.getMessage());
return;
}
try {
if (!(rset.next())) {
out.println("");
out.println("
");
out.println(" Logout Page");
out.println(" ");
out.println(" ");
out.println("1You are not authorized to access this page");
out.println("");
out.println("");
return;
}
else if (!(uAccess[0].equals(rset.getString(1)))) {
out.println("");
out.println(" ");
out.println(" Logout Page");
out.println(" ");
out.println(" ");
out.println("2You are not authorized to access this page");
out.println("");
out.println("");
return;
}
else { // everything is fine
String sTrack = "select 1440*(sysdate-l_access) from customers where cno='" + cno[0] + "'";
rset = stmt.executeQuery(sTrack);
rset.next();
if (rset.getDouble(1) > 10.0) {
out.println("");
out.println(" ");
out.println(" Logout Page");
out.println(" ");
out.println(" ");
int nRows = stmt.executeUpdate("update customers set u_access = null where cno='" + cno[0] + "'");
out.println("Your session has expired!
Please Login again to continue shopping.");
out.println("");
out.println("");
out.println("");
return;
}
int nRows = stmt.executeUpdate("update customers set l_access = sysdate where cno='" + cno[0] + "'");
int numParams = 0;
String parts[] = new String[100];
String pValues[] = new String[100];
Enumeration enum = request.getParameterNames();
while (enum.hasMoreElements()) {
String x = (String) enum.nextElement();
if (x.equals("uAccess") || x.equals("customerId"))
continue;
parts[numParams] = x;
pValues[numParams] = request.getParameter(parts[numParams]);
numParams++;
}
out.println("");
out.println(" ");
out.println(" Add To Cart");
out.println(" ");
out.println(" ");
rset = null;
String query1 = "select cartno from cart where cno='"+cno[0]+"'";
rset = stmt.executeQuery(query1);
boolean hasCart = false;
int cartNum = 0;
if (rset.next()) {
hasCart = true;
cartNum = rset.getInt(1);
for (int i = 0; i < numParams; i++) {
if (pValues[i].equals(""))
continue;
String query11 = "select qty from cart where cno='"+cno[0]+"' and pno=" + parts[i];
rset = stmt.executeQuery(query11);
if (rset.next()) { // need to update
String query12 = "update cart set qty = qty + " + pValues[i] + " where cno = '" + cno[0] + "' and pno = " + parts[i];
nRows = stmt.executeUpdate(query12);
}
else {
String query2 = "insert into cart values (" + cartNum + ",'" +
cno[0] + "'," + parts[i] + "," + pValues[i] + ")";
nRows = stmt.executeUpdate(query2);
}
}
}
else {
String query31 = "select cart_seq.nextval from dual";
rset = stmt.executeQuery(query31);
rset.next();
cartNum = rset.getInt(1);
for (int i = 0; i < numParams; i++) {
if (pValues[i].equals(""))
continue;
String query32 = "insert into cart values ("+ cartNum + ",'" +
cno[0] + "'," + parts[i] + "," + pValues[i] + ")";
nRows = stmt.executeUpdate(query32);
}
}
out.println("Successfully added items to your cart");
out.println("If you would like to view or edit your cart, please use the View/Edit Link
If you are done shopping, please use the CheckOut link
");
out.println("");
out.println("");
} // else ends here
} catch (SQLException e) {
out.println("executeQuery " + e.getMessage());
return;
}
try {
stmt.close();
conn.close();
} catch (SQLException e) {
out.println("executeQuery " + e.getMessage());
return;
}
out.close();
}
public String getServletInfo() {
return "This Servlet processes Customer Login";
}
}