martes, 13 de marzo de 2012

Carrito De Compras con Cookies


Introducción

Este es un tutorial de una aplicacion web (Carrito de compras) usando cookies, en java y usando la plataforma Netbeans IDE 7.0.1. Estos cookies actuan como pequeños trozos de informacion textual que el servidor puede enviar al cliente y que este no modifica y reenvia al servidor cuando vuelve a visitar el mismo sitio.

Ahora vamos al Desarrollo xD!

1.- Creacion del formulario en html

Primero haremos lo mas facil!!. El diseño en html para seleccionar los libros. Para hacer esto le damos click derecho en WebPages, New y seleccionamos HTML.

1.1.-Codigo del index.html

El Diseño del index.html, quedara asi.

El codigo del index.html es el siguiente.

<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>

<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        
        <h1 align ="center">Seleccione el Libro de su preferencia </h1><br>
        <form name="form" action="Libros" method="POST">
          <h3 align ="center">Seleccione el libro de preferencia:  <select name="listar">
          
          <option>Java</option>          
          <option>C</option>
          <option>C++</option>
          <option>VB</option>
          <option>RubY</option>
          <option>Phyton</option>          
          </select>  <input type="submit" value="enviar" /> </h3>
        </form>
        
    </body>
</html>

2.-Creacion del Servlet Libros

Creamos primero el paquete compra, dentro de este paquete estara el Servlet Libros

Ahora Creamos el Servlet Libros

2.1.-Codigo del Servlet Libros

Your script
package compra;
import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import javax.servlet.http.Cookie;

/**
 *
 * @author JulioCsaR
 */

public class Libros extends HttpServlet {
    
    private final Map libros = new HashMap();
    public void init() {
        libros.put("Java",  "67.00");
        libros.put("C",     "56.00");
        libros.put("C++",   "63.00");
        libros.put("VB",    "52.00");
        libros.put("Ruby",  "48.50");
        libros.put("Phyton","46.00");
    }  
    

           
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
      
        String lenguaje=request.getParameter("listar");
        String precio=libros.get(lenguaje).toString();
        //Creamos el Cookie, este recibe dos parametros: Nombre y valor 
        Cookie cookie=new Cookie(lenguaje,precio);
        //Añadir el cookie a la respuesta
        response.addCookie(cookie);        
        response.setContentType("text/html");
        PrintWriter out=response.getWriter();
        out.println( "<?xml version = \"1.0\"?>" );
        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD" + "XHTML 1.0 Strict//EN\" \"http://www.w3.org" + "/TR/xhtml1/DTD/xhtml1-strict.dtd\">");
        out.println("<html xmlns = \"http://www.w3.org/1999/xhtml\">");
        out.println( "<head><title>LIBRERIA ATLANTIDA</title></head>" );
        out.println( "<body>" );
        out.println( "<h1 >Bienvenidos Libreria Atlantida! Usted selecciono " +lenguaje + "</h1>" );
        out.println("<p><a href=\"index.html\">\"Clickee aqui para seguir comprando</a></p>");
        out.println("<p><a href=\"Libros\">\"Clickee aqui para ver el resumen de su compra</a>");
        out.println( "</body>" );
        out.println( "</html>" );
        
        out.close();
        
        
    }
    
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
      
        
        Cookie cookies[] = request.getCookies();
        Double sum = 0.0;
        response.setContentType( "text/html" );
        PrintWriter out = response.getWriter();
        out.println( "<?xml version = \"1.0\"?>" );
        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD" +"XHTML 1.0 Strict//EN\" \"http://www.w3.org" + "/TR/xhtml1/DTD/xhtml1-strict.dtd\">");
        out.println("<html xmlns = \"http://www.w3.org/1999/xhtml\">");
        out.println( "<head>");
        out.println( "<title>CARRITO DE COMPRAS</title>" );
        out.println( "</head>" );
        out.println( "<body>" );
        
        
                  if ( cookies != null && cookies.length != 0 )
                  {  out.println( "<h1 align=center>Compra Total</h1>" );
                     out.println( "<p>" );
                     out.println("<table width=298 border=1 cellpadding=6 align=center>");
                     out.println("<tr>");
                     out.println("<td width=208 align=center><strong><b>Titulo del Libro</b></strong></td>");
                     out.println("<td width=74 align=center><strong><b>Precio</b></strong></td>");
                     out.println("</tr>");
                         for ( int i = 0; i < cookies.length; i++ )
                         {   out.println("<tr>");
                             out.println("<td>" + cookies[i].getName() + " Como programar.: </td>");
                             out.println("<td>"+ cookies[i].getValue() + "</td>");
                             out.println("</tr>");
                             sum = sum + Double.parseDouble(cookies[i].getValue());
                         }
                     out.println("</table>");
                     out.println("<br>");                     
                     out.println("<h2 align=center><b>Monto Total S/.:  "+ sum+ "</b></h2>");
                  } 
                  else
                  {  out.println("<H1>No hay recomendaciones </H1>");
                     out.println("<p>Ud no selecciono ningun Libro</p>");
                  }
        out.println("</body>");
        out.println("</html>");
        out.close();
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}

El Resultado Seria


3 comentarios:

Unknown dijo...

amigo no me dice nada cuando ingreso el libro, esto es lo que medice:
"Servlet Libros at /Carrito1" no me muestra "usted elijio java"

Anónimo dijo...

NO funciona, sale error de instaciamiento en el servlet Libro

Anónimo dijo...

Si Funciona !! Gracias Me Sirvio mucho.

Publicar un comentario

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Web Hosting Bluehost