En esta oportunidad te presento un video donde te explico cómo ejecutar el código fuente de una aplicación Java Web, utilizando HTML, CSS, JavaScript, AJAX y JSON, en la capa de persistencia se utiliza JDBC y base de datos Oracle XE 11g.
Tú tienes acceso al código fuente de esta aplicación, después del video esta el enlace.
El Patrón Model-View-Controller (MVC) es el mas utilizado en desarrollo web.
Este patrón permite estructurar una aplicación web en tres capas, donde cada una tiene una responsabilidad bien definida, haciendo mas fácil el desarrollo y mantenimiento de la aplicación.
DIAPOSITIVA
CÓDIGO FUENTE - EUREKA-WEB-ORACLE-JDBC
En esta oportunidad te presento un video donde te explico cómo ejecutar el código fuente de una aplicación Java Web, utilizando HTML, CSS, JavaScript, AJAX y JSON, en la capa de persistencia se utiliza JDBC y base de datos Oracle XE 11g.
Tú tienes acceso al código fuente de esta aplicación, después del video esta el enlace.
SQL SERVER ORACLE MYSQL JAVA JAVAEE JDBC MVC DAO PATRONES ANDROID SERVLETS JSP WEBJAVA WEB SERVLETS JSP MVC DAO EJB JDBC
INTRODUCCIÓN
El Patrón Model-View-Controller (MVC) es el mas utilizado en desarrollo web.
Este patrón permite estructurar una aplicación web en tres capas, donde cada una tiene una responsabilidad bien definida, haciendo mas fácil el desarrollo y mantenimiento de la aplicación.
SQL SERVER ORACLE MYSQL JAVA JAVAEE JDBC MVC DAO PATRONES ANDROID SERVLETS JSP WEBJAVA WEB SERVLETS JSP MVC DAO EJB JDBC
INTRODUCCIÓN
El Patrón Model-View-Controller (MVC) es el mas utilizado en desarrollo web.
Este patrón permite estructurar una aplicación web en tres capas, donde cada una tiene una responsabilidad bien definida, haciendo mas fácil el desarrollo y mantenimiento de la aplicación.
DIAPOSITIVA
CÓDIGO FUENTE - EUREKA-WEB-ORACLE-JDBC
En esta oportunidad te presento un video donde te explico cómo ejecutar el código fuente de una aplicación Java Web, utilizando HTML, CSS, JavaScript, AJAX y JSON, en la capa de persistencia se utiliza JDBC y base de datos Oracle XE 11g.
Tú tienes acceso al código fuente de esta aplicación, después del video esta el enlace.
SQL SERVER ORACLE MYSQL JAVA JAVAEE JDBC MVC DAO PATRONES ANDROID SERVLETS JSP WEBJAVA WEB SERVLETS JSP MVC DAO EJB JDBC
INTRODUCCIÓN
El Patrón Model-View-Controller (MVC) es el mas utilizado en desarrollo web.
Este patrón permite estructurar una aplicación web en tres capas, donde cada una tiene una responsabilidad bien definida, haciendo mas fácil el desarrollo y mantenimiento de la aplicación.
Java Server Page (JSP) es la tecnología que permite crear aplicaciones web con la plataforma Java EE de una manera sencilla.
Las páginas JSP permiten combinar HTML estático con HTML generado dinámicamente de una manera muy fácil, de esta manera estaríamos liberándonos de lo dificultoso que resulta hacerlo desde los servlets.
DIAPOSITIVA
CÓDIGO FUENTE
En esta oportunidad te presento un video donde te explico cómo ejecutar el código fuente de una aplicación Java Web, utilizando HTML, CSS, JavaScript, AJAX y JSON, en la capa de persistencia se utiliza JDBC y base de datos Oracle XE 11g.
Tú tienes acceso al código fuente de esta aplicación, después del video esta el enlace.
Cuando desarrollamos una aplicación web, una de las tareas mas frecuentes que tenemos que programar son los combos anidados, el ejemplo tipico es el del código de ubicación geografica (UBIGEO).
En este oportunidad desarrollare un ejemplo utilizando la base de datos EurekaBank y la plataforma Java.
Gson es una librería de Java que se puede utilizar para convertir objetos Java en su representación JSON. Podemos encontrar mas información en la siguiente dirección:
De lo que se trata es de llenar el combo de cuentas en función al valor que el usuario seleccione en el combo de sucursales, tal como se muestra en la siguiente imagen:
SUCURSALES
Mediante un listener de sesión cargamos la lista de sucursales en sesión, la clase es la siguiente:
package pe.egcc.demo.servlets;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import pe.egcc.demo.model.EurekaModel;
/**
*
* @author Eric Gustavo Coronel Castillo
* @blog gcoronelc.blogspot.com
*/
@WebListener()
public class SessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent event) {
try {
EurekaModel model = new EurekaModel();
event.getSession().setAttribute("sucursales", model.cosultarSucursales());
} catch (Exception e) {
}
}
@Override
public void sessionDestroyed(HttpSessionEvent event) {
}
}
Luego para llenar el combo utilizamos JSTL, el script es el siguiente:
Para llenar el combo de cuentas se utiliza un servlet que retorna el resultado como un objeto JSon, se utiliza la librería GSON. La clase es la siguiente:
package pe.egcc.demo.servlets;
import com.google.gson.Gson;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import pe.egcc.demo.model.EurekaModel;
/**
*
* @author Eric Gustavo Coronel Castillo
* @blog gcoronelc.blogspot.com
*/
@WebServlet(name = "DemoController", urlPatterns = {"/TraerCuentas"})
public class DemoController extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
Map<String, Object> rpta = new HashMap<String, Object>();
try {
// La siguiente línea es para poder apreciar el efecto AJAX.
Thread.currentThread().sleep(2000);
// Dato
String sucursal = request.getParameter("sucursal");
// Proceso
EurekaModel model = new EurekaModel();
List<Map<String, ?>> lista = model.consultarCuentas(sucursal);
rpta.put("rpta", "1");
rpta.put("lista", lista);
} catch (Exception e) {
rpta.put("rpta", "-1");
rpta.put("mensaje", e.getMessage());
}
Gson gson = new Gson();
out.print(gson.toJson(rpta));
out.flush();
out.close();
}
}
Luego, para llenar el combo utilizamos JQuery, el script es el siguiente:
<script type="text/javascript" src="j/http://gcoronelc.blogspot.com/search/label/query/jquery-2.1.1.min.js"></script>
<script type="text/javascript">
$("#cboSucursal").change(function() {
var cboCuenta = $("#cboCuenta");
cboCuenta.empty();
var sucursal = $("#cboSucursal").val();
if (sucursal == '000') {
return;
}
var data = "sucursal=" + sucursal;
cboCuenta.append('<option value="">Cargando...</option>').val('');
$.post("TraerCuentas", data, function(objJson) {
cboCuenta.empty();
if (objJson.rpta == -1) {
alert(objJson.mensaje);
return;
}
var lista = objJson.lista;
if(lista.length > 0){
cboCuenta.append("<option value='0'>[Seleccione cuenta]</option>");
} else {
cboCuenta.append("<option value='0'>[No hay cuentas]</option>");
}
for (var i = 0; i < lista.length; i++) {
var item = "<option value='" + lista[i].cuenta + "'>" + lista[i].descripcion + "</option>";
cboCuenta.append(item);
}
});
});
$("#cboCuenta").change(function() {
var cuenta = $("#cboCuenta").val();
if(cuenta=="0"){
return;
}
alert("Cuenta: " + cuenta);
});
</script>
PROYECTO COMPLETO
Puede descargar el proyecto completo desde el siguiente enlace:
Las colecciones son un conjunto de interfaces, clases abstractas y clases concretas que te permiten manejar una gran cantidad de datos relacionados en forma de listas para lo cual dispones de la interfaz List y la clase ArrayList, también como pares de datos CLAVE->VALOR para los cual dispones de la interfaz Map y la clase HashMap.
Todas las clases que nos permiten manejas conjuntos de datos se agrupan en un marco de trabajo conocido como Java Colecction Framework (JCF), y entre sus características la que mas resalta es que soporte Generics, esto quiere decir que podemos crear por ejemplo lista genéricas de tipo Object o listas personalizadas, por ejemplo de tipo Producto, Cliente, Cuenta, etc.
Una de sus aplicación la tenemos en la capa DAO, por ejemplo, si estamos consultan los productos de una categoría, la capa DAO estaría retornando una lista con objetos de tipo Producto.
Todos los componentes de JCF se encuentran en el paquete java.util.
El servlet es la tecnología Java que permite crear aplicaciones web dinámicas, es decir, que permite al usuario interactuar con la aplicación, por ejemplo, hacer consultas, insertar y eliminar datos, etc.
Un Servlet es un objeto java que pertenece a una clase que extiende de javax.servlet.http.HttpServlet, y admite peticiones a través del protocolo HTTP. El servlet recibe peticiones desde un navegador web, las procesan y devuelven una respuesta al navegador, normalmente en HTML.
Para obtener la respuesta que debe enviar, un servlet puede acceder a bases de datos, comunicarse con otros componente, como por ejemplo, un Bean, un EJB, o tal vez un Web Service.
En esta lección veremos cómo crear e interactuar con los servlets.
DIAPOSITIVA
CÓDIGO FUENTE - EUREKA-WEB-ORACLE-JDBC
En esta oportunidad te presento un video donde te explico cómo ejecutar el código fuente de una aplicación Java Web, utilizando HTML, CSS, JavaScript, AJAX y JSON, en la capa de persistencia se utiliza JDBC y base de datos Oracle XE 11g.
Tú tienes acceso al código fuente de esta aplicación, después del video esta el enlace.
Java Web: Problemas con el puerto 8080 - GUSTAVO CORONEL
PROBLEMA
El puerto 8080 lo utilizan por defecto los servidores JEE como GlassFish, Tomcat y JBoss para las aplicaciones Web.
Normalmente no deberíamos tener ningún problema si utilizamos uno de estos contenedores y trabajamos con MySQL (Puerto 3306) y SQL Server (Puerto 1433).
El problema se presenta en las siguientes situaciones:
Si queremos utilizar dos servidores JEE al mismo tiempo en la misma máquina.
Si queremos utilizar Oracle XE.
SOLUCIÓN
La solución está en configurar cada uno de estos servidores Java EE con un puerto diferente, en algunos casos se puede optar por cambiar el puerto de Oracle XE.