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