Java Servlet Bookstore: Cart and Checkout Logic Explained

Computer science4.36 KB

LibreriaServlet

package servlet;

public class LibreriaServlet extends HttpServlet {

protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

HttpSession session = request.getSession(false);

Almacen almacen = new Almacen();

List<Libro> librosDisponibles = new ArrayList<Libro>();

try {

librosDisponibles = almacen.consultaLibrosDisponibles();

} catch (Exception e) {

PrintWriter out = response.getWriter();

out.print("ERROR: " + e.getMessage());

out.close();

}

if (session != null) {

String accion = request.getParameter("Accion");

if (accion.equals("agregar")) {

List<String> listaIsbns = (List<String>) session.getAttribute("tienda.carro");

String isbn = request.getParameter("seleccionLibros");

Libro libro = null;

try {

libro = almacen.consultaLibro(Integer.parseInt(isbn));

if (libro != null) {

if (listaIsbns == null) {

listaIsbns = new ArrayList<String>(10);

}

listaIsbns.add(isbn);

session.setAttribute("tienda.carro", listaIsbns);

} else {

PrintWriter out = response.getWriter();

out.print("ERROR: Libro con ISBN " + isbn + " no está disponible.");

out.close();

}

} catch (Exception ex) {

PrintWriter out = response.getWriter();

out.print("ERROR: " + ex.getMessage());

out.close();

}

request.setAttribute("librosDisponibles", librosDisponibles);

try {

request.setAttribute("librosSolicitados", almacen.consultaListaLibrosSolicitados(listaIsbns));

} catch (Exception ex) {

Logger.getLogger(LibreriaServlet.class.getName()).log(Level.SEVERE, null, ex);

}

// IMPORTANT!! The path must start with '/' to indicate it is relative to the current context

String url = "/Tienda.jsp";

ServletContext sc = getServletContext();

RequestDispatcher rd = sc.getRequestDispatcher(url);

rd.forward(request, response);

} else if (accion.equals("comprar")) {

List<String> listaIsbns = (List<String>) session.getAttribute("tienda.carro");

try {

request.setAttribute("listaCompra", almacen.consultaListaLibrosSolicitados(listaIsbns));

} catch (Exception ex) {

Logger.getLogger(LibreriaServlet.class.getName()).log(Level.SEVERE, null, ex);

}

String url = "/Compra.jsp";

ServletContext sc = getServletContext();

RequestDispatcher rd = sc.getRequestDispatcher(url);

rd.forward(request, response);

}

} else {

request.setAttribute("librosDisponibles", librosDisponibles);

// IMPORTANT!! The path must start with '/' to indicate it is relative to the current context

String url = "/Tienda.jsp";

ServletContext sc = getServletContext();

RequestDispatcher rd = sc.getRequestDispatcher(url);

rd.forward(request, response);

}

}

}

JSP Fragment: Purchase List

List<Libro> listaCompra = (List<Libro>) request.getAttribute("librosSolicitados");

if (listaCompra != null && !listaCompra.isEmpty()) {

%>


Título


for (int idx = 0; idx < listaCompra.size(); idx++) {

Libro libro = listaCompra.get(idx);

%>

Download

PDF Word HTML