lunes, 2 de septiembre de 2013

aplicaciones web y servlets


Cuando hablamos de una pagina web interactiva o dinámica quiere decir que el usuario puede interactuar con el navegador haciendo operaciones y otro tipo de cosas que retornan un resultado.
Para esto usamos los servlets, son una clase de java que implementa un request y un response ademas  se encarga de interpretar un poco de html para poder interactuar con el servidor.
Los servlets es donde hacemos la LOGICA DEL NEGOCIO, el servlet se encarga de hacer procesos mediante otras clases y ademas pasar los resultados.

el metodo request.getParameter("nombre del parametro"): nos sirve para capturar los parámetros que nos mandan por el navegador. Cada vez que llenas un formulario en una pagina web y le das enviar, la pagina toma el nombre de las variables que mandaste y las envía como parámetros a la pagina solicitada y lo que hace el metodo es obtener el valor del parametro.

HAGAMOS CALCULADORA VIRTUAL
Pasos para crear un servlet:

1)abrir un nuevo java web aplication en netbeans.

 una vez creado el espacio para trabajar el te asigna un index.jsp (el index es la pagina principal por defecto) que esta en la carpeta web.
vamos a crear un formulario dentro de el index.jsp  donde nos pueda ingresar unos datos


<form action="aca va el nombre de tu servlet" method="POST">
                 <input type="text" name="n1" value="" size="20" />
                 <select name="operacion">
                     <option>+</option>
                     <option>-</option>
                     <option>*</option>
                     <option>/</option>
                 </select>
                 <input type="text" name="n2" value="" size="20" />
                 <input type="submit" value="calcular" name="calcular" />
            </form>

este formulario son dos cajones de texto , un option box y un boton de enviar se ve asi


aca en este formulario el cajo 1 se llama "n1", el option box  se llama "operacion" , el campo 2 se llama "n2" y el boton se llama "calcular". estos serian los nombres de los parametros que vamos a enviar.

 una vez hecho esto creemos un java package con el nombre que queras  dentro de la carpeta source package, alli vamos a almacenar el servlet que necesitamos.

vamos a darle click derecho sobre el paquete nuevo que creamos y creamos un nuevo servlet.

 


ahora creemos una clase normal de java que se llame OperacionesConNumero.

public class OperacionesConNumero {
    double n1,n2;

    public OperacionesConNumero() {
    }

    public OperacionesConNumero(double n1, double n2) {
        this.n1 = n1;
        this.n2 = n2;
    }

    public double getN1() {
        return n1;
    }

    public void setN1(double n1) {
        this.n1 = n1;
    }

    public double getN2() {
        return n2;
    }

    public void setN2(double n2) {
        this.n2 = n2;
    }
    public double getSuma()
    {
        return this.n1+this.n2;
    }
    public double getResta()
    {
        return this.n1-this.n2;
    }
    public double getmult()
    {
        return this.n1*this.n2;
    }
    public double getdiv()
    {
        if(this.n2==0 ||this.n1==0)
        {  
            return 0;
        }
        else
        {
            return n1/n2;
        }
    }
}



codigo para el servlet

public class Calculadora extends HttpServlet {
    private OperacionesConNumero op;
    private double resultado;

    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> 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");
        PrintWriter out = response.getWriter();
        try {
            /* TODO output your page here. You may use following sample code. */
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet Calculadora</title>");            
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet Calculadora at " + request.getContextPath() + "</h1>");
            out.println("</body>");
          String n1= request.getParameter("n1");
          String n2 = request.getParameter("n2");
          String operacion = request.getParameter("operacion");
           op = new OperacionesConNumero(Integer.parseInt(n1),Integer.parseInt(n2));
           if(operacion.compareTo("+")==0)
                   {
                        resultado = op.getSuma();
                   }
           if(operacion.compareTo("-")==0)
                   {
                        resultado = op.getResta();
                   }
           if(operacion.compareTo("*")==0)
                   {
                        resultado = op.getmult();
                   }
           if(operacion.compareTo("/")==0)
                   {
                        resultado = op.getdiv();
                   }
          out.println(n1+operacion+n2+"="+resultado);
            out.println("</html>");
        } finally {            
            out.close();
        }
    }




No hay comentarios:

Publicar un comentario