Ing. Pablo Almeida Haro Msc.

JAVA SERVLET

CONCEPTO

Es una clase de java que permite extender las capacidades del servidor

CARACTERISTICAS

*Utiliza el esquema de programación solicitud y respuesta (request - response)

*Es una tecnología del lado del servidor.

*El código reside en el servidor y se ejecuta en los recursos del servidor

*Permite la creación de páginas web con contenido dinámico.

*Reemplazó a la tecnología CGI (Common Gateway Interface)

*Garantiza la portabilidad entre plataformas

*Los paquetes javax.servlet y javax.servlet.http proveen intefaces y clases para escribir aplicaciones basadas en servlets

*Todo servlet debe implementar la interface servlet

*La clase HttpServlet provee los métodos doGet y doPost

*El ciclo de vida de un servlet es controlado por el container

*El objeto request contiene los datos pasados del cliente hacia el servidor

*El objeto response contiene los datos pasados del servidor hacia el cliente

 

 

 

 

 

*Ingresar a netbeans

*Crear un nuevo proyecto: file/new/Project/web application

 

*Ingresar nombre de proyecto y ubicación

*Seleccionar servidor y versión jee

*No seleccionar ningún framework

*Crear un nuevo paquete: click derecho sobre source packages/new/java package

 

*Crear el servlet: click derecho sobre el nuevo paquete new/servlet

*Ingresar el nombre del servlet

*Dejar por defecto los datos que siguen a continuación:

*El ide por defecto creará un código el cual debe ser reemplazado por lo que sigue a continuación:

package pkg_servlet;

 

import java.io.IOException;

import java.io.PrintWriter;

import javax.persistence.Query;

import java.util.List;

import javax.persistence.EntityManager;

import javax.persistence.EntityManagerFactory;

import javax.persistence.Persistence;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

@WebServlet(name = "servlet_cliente", urlPatterns = {"/servlet_cliente"})

public class servlet_cliente extends HttpServlet

{   EntityManagerFactory factory=Persistence.createEntityManagerFactory("prj_servletPU");

    EntityManager em1=factory.createEntityManager();

    String ls_mensaje="";

 

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)

        throws ServletException, IOException {

        response.setContentType("text/html;charset=UTF-8");

        PrintWriter out = response.getWriter();

        String is_pantalla="";

        ls_mensaje="";

        try {

            String is_boton="";

            String ls_codigo="";

            String ls_nombre="";

            is_boton=request.getParameter("boton");

            ls_codigo=request.getParameter("codigo");

            ls_nombre=request.getParameter("nombre");

            if (is_boton==null || is_boton =="")

            {

                is_pantalla=desplegar_pantalla("","");

            }   

            if (is_boton!=null && is_boton !="")

            {

                if(is_boton.equals("Insertar"))

                {

                   String sql ="insert into cliente (codigo,nombre) values ('"+ls_codigo+"'"+","+"'"+ls_nombre+"')";

                   em1.getTransaction().begin();

                   Query qe=em1.createNativeQuery(sql);

                   try

                   {

                       qe.executeUpdate();

                       em1.getTransaction().commit();

                       ls_mensaje="Se insertó satisfactoriamente";

                    }

                   catch (Exception ex)

                   {    em1.getTransaction().rollback();

                        ls_mensaje="No se pudo insertar";

                   }

                    is_pantalla=desplegar_pantalla("","");                 

                    is_pantalla+=ls_mensaje;

                }

                if(is_boton.equals("Eliminar"))

                {

                   String sql ="delete from  cliente where codigo='"+ls_codigo+"'";

                   em1.getTransaction().begin();

                   Query qe=em1.createNativeQuery(sql);

 

                   int li_filas= qe.executeUpdate();

                   if (li_filas>=1)

                   {

                       em1.getTransaction().commit();

                       ls_mensaje+="Se eliminó satisfactoriamente";

                   }

                    else

                   {

                       em1.getTransaction().rollback();

                       ls_mensaje="No se pudo eliminar";

                   }

                    is_pantalla=desplegar_pantalla("","");                 

                    is_pantalla+=ls_mensaje;

                }

                if(is_boton.equals("Modificar"))

                {

                   String sql ="update cliente set nombre='"+ls_nombre+"' where codigo='"+ls_codigo+"'";

                   em1.getTransaction().begin();

                   Query qe=em1.createNativeQuery(sql);

 

                   int li_filas= qe.executeUpdate();

                   if (li_filas>=1)

                   {

                       em1.getTransaction().commit();

                       ls_mensaje+="Se actualizó satisfactoriamente";

                   }

                    else

                   {

                       em1.getTransaction().rollback();

                       ls_mensaje="No se pudo actualizar";

                   }

                    is_pantalla=desplegar_pantalla("","");                 

                    is_pantalla+=ls_mensaje;

                }

                if(is_boton.equals("Buscar"))

                {

                   String sql ="select nombre from  cliente where codigo='"+ls_codigo+"'";

                  

                   Query qe=em1.createNativeQuery(sql);

                   List l1=qe.getResultList();

                   if (l1.size()>=1)

                    {   ls_nombre=(String)l1.get(0);

                        ls_mensaje="En cliente fue encontrado";

                    }

                    else

                    {

                        ls_mensaje="No se encontro el cliente";

                    }

                    is_pantalla=desplegar_pantalla(ls_codigo,ls_nombre);                 

                    is_pantalla+=ls_mensaje;

                }

               

            }

                    out.println(is_pantalla);

                 

        } finally {           

             out.close();

        }

    }  

 

    public String desplegar_pantalla(String as_codigo, String as_nombre)

    {       String ls_pantalla="";

            ls_pantalla+="<html>";

            ls_pantalla+="<head>";

            ls_pantalla+="</head>";

            ls_pantalla+="<body>";

            ls_pantalla+="<h2>SERVLETS - Ing. Pablo Almeida Haro </h2>";

           

            ls_pantalla+="<form action='servlet_cliente' method='post'>";

            ls_pantalla+="Codigo:<input type='text' name='codigo'"+" value='"+as_codigo +"'></input>";

            ls_pantalla+="<br>";

            ls_pantalla+="Nombre:<input type='text' name='nombre'"+" value='"+as_nombre+"'></input>"; 

            ls_pantalla+="<br>";

            ls_pantalla+="<input type='submit' value='Insertar' name='boton'></input>";

            ls_pantalla+="<input type='submit' value='Eliminar' name='boton' ></input>";

            ls_pantalla+="<input type='submit' value='Modificar' name='boton'></input>";

            ls_pantalla+="<input type='submit' value='Buscar' name='boton'></input>";           

            ls_pantalla+="</form>";           

            ls_pantalla+="</body>";

            ls_pantalla+="</html>";

        

        return ls_pantalla;

    }

   

    @Override

    protected void doGet(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        processRequest(request, response);

    }

 

    @Override

    protected void doPost(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        processRequest(request, response);

    }

}

 

*Crear la unidad de persistencia: file /new file/persistence/persistence unit

*Colocar el nombre de la unidad de persistencia y el origen de datos

*Correr la aplicación: click derecho sobre servlet_cliente.java y run