Bienvenida e Introducción

1

Qué aprenderás sobre Hibernate y Java Spring

2

Instalar ambiente de desarrollo en Windows

3

¿Qué es una Aplicación Empresarial?

4

¿Cómo funcionan las Aplicaciones Web?

5

Servidores Web vs Servidores de Aplicación

6

Instalar ambiente de desarrollo Mac

7

Patrón de Arquitectura MVC

8

Características de los Servlet

9

Utilización del Servlet

10

Características y práctica de JSP

Comenzar con Spring Boot

11

Arquitectura de las Aplicaciones Web

12

Características de Spring Framework

13

Características de Spring Boot

14

Crear, cargar y configurar una aplicación en Spring Boot

15

Crear la estructura del proyecto

Spring Data JPA

16

Persistencia de objetos

17

Spring Data, Spring Data JPA

18

Iniciar la base de datos postgres utilizando Docker

19

Optimizar Pojos con Lombok

20

Mapear Tablas de la Base de Datos

21

Configurar la persistencia con Hibernate

Manejo de Negocio

22

Añadir JPA Repository

23

Implementar las operaciones de Consulta con JPA Repository

24

Implementar servicio de negocio para las operaciones CRUD

25

Manejar la transaccionalidad de un servicio de negocio

Spring REST

26

Instalar y configurar Swagger

27

Características de los Servicios Web y Spring Rest

28

Implementar las operaciones REST para crear y actualizar información

29

Implementar las operaciones REST para eliminar y consultar información

30

Documentación de los servicios REST con Swagger

Spring Security

31

Manejar la seguridad en una aplicación web

32

Características, instalación e integración de Spring Security

33

Personalizar la página de Login

Despliegue Aplicaciones Docker

34

Realizar la configuración de Docker Plugin

35

Crear una imagen docker de la aplicación

36

Subir la aplicación a docker hub

37

Ejecutar la aplicación dockerizada

38

Despedida del curso

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Hibernate y Java Spring 2018

Curso de Hibernate y Java Spring 2018

Marco Antonio Toscano Freire

Marco Antonio Toscano Freire

Características y práctica de JSP

10/38
Recursos

Las JSP (JavaServer Page) son componentes del lado del servidor que nos permiten desarrollar páginas web con soporte para contenido dinámico gracias a la inclusión de código Java en código html utilizando los Tags (una sintaxis especial que podemos utilizar en cualquier momento para añadir contenido dinámico: <% for(1=0; i<10: i++) %>).

El desafío de esta clase es crear una página con JSP para visualizar la información de los usuarios que se registran.

Aportes 36

Preguntas 10

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

En el minuto 11:49 se agregó un punto en la ruta del server ./abc123. Esto es debido a las rutas en los directorios. Las rutas pueden ser:

  • Absolutas. Es la ruta completa del directorio. Incluyendo el disco en el que está almacenado. Ejemplo: C:/Program Files/Java
  • Relativas. Rutas que parten desde cierto directorio y sus relativos. Es decir, sus directorios padres, hijos o hermanos

En este caso, se utilizan rutas relativas y se pueden utilizar de la siguiente manera:

  • ./ Hace referencia al directorio en el que se está posicionado actualmente
  • ../ Hace referencia al directorio padre de donde se esté posicionado

En caso de que creemos un directorio “users” y guardemos todos los JSP de usuarios en este, cuando queramos acceder a los servlets, deberemos utilizar ../rutaServlet

De todas formas, esta no es la mejor práctica debido a que si tenemos muchas carpetas o queremos mover el directorio, se podría complicar mover las rutas nuevamente. Recomiendo utilizar: <%=request.getContextPath() %>/rutaServlet. Este código arrojará siempre la ruta al directorio en donde se encuentran los servlets. Como pueden ver, es un código en java utilizando los scriptlets que se habló en la clase.

Para más información sobre las rutas, acá lo explican bien

Si vuelvo a escuchar “el tema” una vez más creo que voy a gritar

las etiquetas son:
comentario:

<%--un comentario--%>

expresiones:

<%=  una linea de código  %>

Scriptlets

<% varias lineas de código %>

Declaraciones

<%! declaración de variables o métodos %>

importar archivos java

<%@ page import = "java.lang.Math, com.gerald.otraClase"  %>

Buenas practicas:
mantener el mínimo código posible en las JSP. Separar el código java en clases (Modular).
referirse a los archivos usando <%=request.getContextPath() %>/abc123

Usando Bootstrap para que se vea mejor 😄

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<link rel="stylesheet"
	href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
	integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
	crossorigin="anonymous">
</head>
<body>
	<div class="container">
		<%
			int i = 0;
		%>
		<form action="./ServletLogin">
			<div class="form-group">
				<label for="email">Email Address</label> <input type="email"
					class="form-control" id="email" name="email"
					aria-describedby="emailHelp" placeholder="Enter email"> <small
					id="emailHelp" class="form-text text-muted">We'll never
					share your email with anyone else.</small>
			</div>
			<div class="form-group">
				<label for="company">Company</label> <input type="text" id="company"
					name="company" class="form-control" placeholder="Company">
			</div>
			<div class="form-group">
				<label for="password">Password</label> <input type="password"
					id="password" name="password" class="form-control"
					placeholder="Password">
			</div>
			<button type="submit" class="btn btn-primary">Login</button>
		</form>
	</div>
	<div>
	<%
		for (i = 0; i < 10; i++) {
	%>
	<label>Hola <%=i%></label>
	<%
		}
	%>
	</div>
</body>

Me estoy dando cuenta de que los JSP son lo equivalente a los RazorPages de C# o EJS en NodeJS. 🤓

seguimos el curso. Hasta el momento todo bien.

IMPORTANTE: Hasta ahora, en todos los tutoriales (no sólo de Platzi) que he podido ver se trabaja con servidores de modo local, no he visto ninguno que “muestre” cómo trabajar con un servidor de modo remoto, desde mi muy personal punto de vista, queda un sesgo vacío.

cuanto cambia con respecto a JSF?

JSP = (java services page) componentes del lado servidor patra el desarrollo de paginas web, usando tags de JSPS para html

Excelente!!. Esto ya lo he usado pero es muy bueno repasar!!

JSP:

  • Java Server Pages ‘Páginas del Servidor Java’
  • Son componentes del lado del servidor para desarrollar páginas web que soportan contenido dinámico gracias a la inclusión de código java en código html mediante el uso de tags JSP.
  • Esto evita el uso de PrintWriter (resp.getWriter()) para escribir código html, lo cuál hacía más complicado detectar los errores en código.
  • <% %> : Scriptlet. Se utiliza para escribir código de java (incluir archivos, definir atributos, dependencias, páginas de error, etc).
    • <%-- --%> : Comentarios.
    • <%! %> : Declaración. Declara variables o métodos que puede usar código java más adelante en la página JSP.
    • <%= %> : Expresión. Expresión de lenguaje script (java), que se evalua, se convierte en una cadena (string) y se inserta en el JSP.
    • <%@ %> : Directiva. Afecta la estructura general de la clase servlet.
      page: Define atributos dependientes de la página, como el lenguaje de secuencias de comandos, la página de error y los requisitos de almacenamiento en búfer.
      include: Incluye un archivo durante la fase de traducción.
      taglib: Declara una biblioteca de etiquetas, que contiene acciones personalizadas, utilizadas en la página.

Para que el if vaya a “Usuario incorrecto” hay que crear String password y colocarlo dentro del if, además con null no me funciona, pero con “” sí, así:

		String usuario = request.getParameter("usuario");
		String password = request.getParameter("password");
		String empresa = request.getParameter("empresa");
		PrintWriter escritor = response.getWriter();

		if (usuario !="" && password !="" && empresa !="") {
			if (empresa.equals("Platzi")) {
				escritor.println("Bienvenido a Platzi");
			} else {
				escritor.println("Bienvenido");
			}
		} else {
			escritor.println("Usuario incorrecto!!");
		}
		escritor.close();```

No es buena práctica manejar tablas ya que están mandadas a recoger. Se deben utilizar <div>.

Quedaría de la siguiente manera:

login.jsp

<%--
  Created by IntelliJ IDEA.
  User: cesardramirez
  Date: 12/26/19
  Time: 5:53 PM
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%! int i = 0; %>
<html>
    <head>
        <title>Login Form</title>
        <link rel="stylesheet" type="text/css" href="css/platziweb.css">
    </head>
    <body>
        <form action="./login" method="post">
            <div class="table">
                <div class="row">
                    <div class="cell"><label>Usuario:</label></div>
                    <div class="cell"><input type="text" name="usuario"></div>
                    <div class="cell"><label>Clave:</label></div>
                    <div class="cell"><input type="password" name="clave"></div>
                    <div class="cell"><label>Empresa:</label></div>
                    <div class="cell"><input type="text" name="empresa"></div>
                </div>
                <div class="row">
                    <div class="cell"><input type="submit" value="Enviar"></div>
                </div>
            </div>
            <% for (i = 0; i < 10; i++) { %>
            <label>Hola <%= i %></label><br>
            <% } %>
        </form>
    </body>
</html>

platziweb.css

.table {
    display: table;
    margin-bottom: 10px;
}

.headboard {
    display: table-row;
    font-weight: bold;
    text-align: center;
}

.row {
    display: table-row;
    border-top: 5px;
}

.cell {
    display: table-cell;
    /*border: thin solid;*/
    padding: 0 5px;
}

JSP: Java Server Pages, cool!!!

Hola yo he tenido un problema cuando quiero activar tomcat me manda un error dice tiempo excedido

hola tengo una duda, como podría consumir un recurso estático en el proyecto? ya utilice la configuración spring.mvc.static-path-pattern = / resources / ** en el .properties y la imagen que ocupo esta en la carpeta resources. tendran alguna idea?

Muy buena clase.

Muy buena explicación.!!

Excelente curso!!!

Siempre me causo un dolor de cabeza eso de las directivas, menos mal a mejorado con las anotaciones o eso creo

Excelente iniciacion para frontend 😃

espectacular explicaciooooooonnn!!

Me voló la cabeza. Excelente curso 😃

Para comentar que en mi caso el pageEncoding indica:

charset=ISO-8859-1"
pageEncoding=“ISO-8859-1”

cómo configuro en el eclipse para que siempre que creo una jsp cree como UTF-8 ???
Gracias.

Super!!

Excelente resumen de jsp!!!

¿No es un poco aburrido tener que poner esos comentarios: <% %> toooodo el tiempo?

<%  
	for  (i = 0; i < 10; i++)
	{
	%>
		<label> Hola <%=i%></label>
	<%
	}
	%>

En mi opinión queda bastante feo, y raleentiza muchísimo el tiempo de trabajo. ¿No existen otras alternativas?

Ufff falto por explica mucho de los jsp, como se pasan valores a los jsp?..con se regreso valores desde un repositorio, falto demasiado

Muy rapido

me gusto mucho la clase, se integraron varios conceptos y se vio una forma practica sencilla gracias

No entiendo porqué en el action del form tenemos que poner un punto ./ab1c23 antes de la ruta.

Super 😃

JSP Smell 2 Spaghetti 😦

Excelente, todo salio ok

Todo va muy bien, pero y Hibernate y Spring? … ya vamos x el capitulo 10…