B03T13 -- Jakarta -- Autor: Antonio Moreno Flashcards
¿Para qué sirven las utilidades rmic y rmiregistry de Java?
- RMIC: compilador, generador de stubs en cliente y skeletons en servidor, todo para la comunicación cliente-servidor en programación distribuida.
- RMIREGISTRY: servicio de nombres para registrar objetos distribuidos
¿Cómo se llama la utilidad que desemsambla ficheros .class de Java?
javap
¿Qué es jdb?
Es el depurador de Java
¿Qué son jmc y jconsole?
Herramientas de monitorización de la JVM
Nombra 5 modificadores de Java
- final
- static
- abstract
- protected
- private
- public
- native
- volatile
- transient
- synchronized
- default
¿Para qué se utiliza @FunctionalInterface en Java?
Para anotar que una clase es una interfaz funcional con un único método sin codificar (puede tener más métodos pero han de estar definidos), y que podrá ser rellenado más tarde en tiempo de ejecución a través de funciones lambda.
¿Qué devuelve el siguiente código en Java?
public class Principal { @FunctionalInterface interface Matematicas { public double operacion(double x, double y); }
public static void main(String[] args) {
Matematicas o = (x, y) -> x + y;
System.out.println(o.operacion(2, 3));
}
}
No devuelve nada, pero sí saca por consola el número 5.0
¿Qué es un Stream de Java?
Una secuencia de elementos que soportan operaciones de agregación secuenciales y paralelas (filter, map, reduce, min, max, average, allMatch, anyMatch, count, distinct, findAny, findFirst, forEach, sorted, …)
¿Para qué sirve Predicate en Java?
Es una interfaz funcional (Functional Interface) que representa un predicado de un elemento de entrada. Es decir, tiene una función (test) que recibe un parámetro y devolverá un valor booleano.
Este predicado será usado en las operaciones de agregación de los Stream.
¿Con qué modificador se declara una función en una interfaz Java?
public interface Prueba {
resta(double a, double b);
default suma(double a, double b) {
return a + b;
}
}
Nombra 2 IDE’s de Java
- Eclipse
- NetBeans
- IntelliJ
- BlueJ
¿Qué JDK’s alternativos conoces?
- OpenJDK
- Amazon Corretto
- IBM JDK
¿Cuáles son las últimas versiones publicadas de Java SE y Jakarta EE?
Java SE 16 y JEE 9
¿A quién ha cedido Oracle el control de las especificaciones de la JEE?
Eclipse Foundation
Se le cambió el nombre a Jakarta EE y pasó a formar parte de la iniciativa Eclipse Enterprise For Java (EE4J)
¿Cómo se llama actualmente los antiguos JSR (Java Specification Request) que manejaba la JCP (Java Community Process)?
JESP (Jakarta EE Specification Process) manejado por la EE4J
¿Cómo ha sido renombrado el espacio de trabajo de javax.* del antiguo JEE en la última versión de Jakarta EE?
jakarta.*
¿Cuáles son los profiles que ofrece Jakarta?
- Micro Profile: Este no está en Jakarta, pero es muy usado por Eclipse (que es quien está desarrollando Jakarta EE).
- Web Profile: Contiene las “extensiones” necesarias para realizar un desarrollo web mediano (incluidas las de Micro Profile).
- Full Profile: Contiene todas las “extensiones” apilables sobre la JVM (incluidas las de Web Profile)
Nombra los 3 componentes de la capa de presentación de Java
- JSP (JavaServer Pages): Similar a PHP, incrusta código Java entre el HTML que será compilado antes de ser enviado al cliente.
- JSTL (JSP Standar Tag Library): Extiende JSP agregando bibliotecas nuevas (core, xml, sql, fmt, …) con tags personalizados. Se insertan en un .jsp. Cada biblioteca ha de ser incluida manualmente con .
- JSF (JavaServer Faces): Conjunto de componentes para representar UI (tags predefinidos), gestión de estados, administración de Beans, etc.
¿Cuáles son las 4 bibliotecas principales de JSTL?
- Core
- XML
- Internacionalización
- SQL

Enumera al menos 3 etiquetas de la biblioteca Core de JSTL

Menciona al menos 3 servidores que tenga implementada la API de servicios de JEE 9
- JBoss
- WildFly
- Paray
- Weblogic
- Eclipse GlassFish
- Apache TomEE
- Open Liberty
- Apusic
- ManageFish
- WebSphere Liberty
- Tomcat 10*
¿Qué hace la inyección de dependencias (servicio CDI)?
Minimiza el acomplamiento entre clases, ocultando la implementación (incluso la creación) de la clase usada.

¿Cuál es el ciclo de vida de un Servlet?
La interfaz Servlet implementa 3 métodos que dan su ciclo de vida:
- init(ServletConfig) - Se llama una sola vez al inicio.
- service(ServletRequest, ServletResponse) - Se llama tantas veces como consultas al servicio.
- destroy() - Se llama una sola vez al final del servicio.

¿Qué hace el componente Filter?
Un componente usa el patrón de diseño Chain Of Responsability y que a su vez es un mini Servlet que se pueden encadenar. Están orientados a hacer un procesamiento de la request común a todas las llamadas, descargando de esa función a cada Servlet invocado.
¿Cúantos objetos de Servlet y cuántos hilos tendremos si tenemos 3 Servlets diferentes y 6 usuarios haciendo cada uno 2 llamadas?
Hay un objeto por cada Servlet y un hilo por cada petición. Es decir, hay 3 objetos de Servlet y 12 hilos.
¿Qué interfaces son usadas para dar seguridad a JEE de forma programática?
SessionContext y SecurityContext, haciendo uso de los métodos
- getCallerPrincipal() - Obtiene el login de un usuario autenticado
- isCallerInRole(String) - Determina si un usuario autenticado tiene un rol
- authenticate(req, res, …) - Fuerza al usuario a autentificarse
¿Cómo se añade la seguridad en un Servlet con anotaciones?
Se añade a la clase que implementa Servlet las anotaciones:
- @BasicAuthenticationMechanismDefinition - Indica que el usuario debe autentificarse para acceder. Si no lo está, se muestra la pantalla de identificación.
- @WebServlet(“/example”) - Indica la ruta de acceso al Servlet.
- @DeclareRoles({…}) - Lista de roles permitidas
- @ServletSecurity(@HttpConstraint(rolesAllowed=”…”)) - Limita los roles permitidos de la lista declarada de roles