T13 JAVA EE/JAKARTA EE. PERSISTENCIA. SEGURIDAD Flashcards
En las líneas 1 y 2 del código JAVA necesitamos realizar las importaciones para poder trabajar tanto con sockets como con ficheros (clase File), para ello debemos poner:
a) import java.File.*; Import java.sockets.*;
b) import java.net.*; import java.io.*;
c) import java.socket.*; import java.io.*;
d) import java.utiJ. *; import java.io. *;
En las líneas 1 y 2 del código JAVA necesitamos realizar las importaciones para poder trabajar tanto con sockets como con ficheros (clase File), para ello debemos poner:
a) import java.File.*; Import java.sockets.*;
b) import java.net.*; import java.io.*;
c) import java.socket.*; import java.io.*;
d) import java.utiJ. *; import java.io. *;
java.applet: Contiene clases para la creación de applets. Corresponden a aplicaciones que corren en browsers.
java.awt: Clases para gráficas, componentes Graphic User Interface (GUI) y administradores de control de ventanas, además de clases más especializadas como para el procesamiento de imágenes Abstract Windows Toolkit (AWT)
java.io: Contiene clases para manejar la entrada/salida. Tales como ficheros y streams.
java.lang: Contiene clases variadas pero imprescindibles para el lenguaje, como Object, Thread, Math…
El paquete java.lang es importado por defecto en el ficheros de código Java.
java.net: Contiene clases para soportar aplicaciones que acceden a redes. Tales como datagramas y sockets.
java.util: Contiene clases que permiten el acceso a recursos del sistema, etc. Clases adicionales, tales como estructura de datos avacadas y compresión de datos.
java.security: Seguridad, criptografia.
javax.swing: Contiene clases para crear interfaces de usuario mejorando la AWT.
En las líneas 8 y 9, tras crear el objeto File con el nombre del directorio pasado como parámetro, debemos comprobar que realmente existe este directorio en el sistema, la opción válida para ello es:
a) File dir= new File(args[0]); if (!dir.exists()) { }
b) File dir= new File(args[0]); if (!File.canRead(dir)) { }
c) File dir = new File(); dir.file_name=args[0]; if (!dir.isDirectory()) { }
d) File dir = new File(); dir.name = args[0]; If (!dir.directory{)) { }
En las líneas 8 y 9, tras crear el objeto File con el nombre del directorio pasado como parámetro, debemos comprobar que realmente existe este directorio en el sistema, la opción válida para ello es:
a) File dir= new File(args[0]); if (!dir.exists()) { }
b) File dir= new File(args[0]); if (!File.canRead(dir)) { }
c) File dir = new File(); dir.file_name=args[0]; if (!dir.isDirectory()) { }
d) File dir = new File(); dir.name = args[0]; If (!dir.directory{)) { }
- *En la línea 12, el servidor se mantiene esperando de forma continua la llegada de conexiones clientes, llamando al constructor de la clase Conecta cuando recibe una (pasando como parámetros directorio y socket de la conexión).**
- *¿Qué código de entre los siguientes es válido?**
a) while (1) {conn=ServerSocket.accept(); Conecta(dir,conn);}
b) while (true) {conn=ServerSocket.accept(); new Conecta(dir,conn);}
c) while (true) {conn=listener.accept(); new Conecta(dir,conn);}ç
d) conn = Iistener.accept(); if (conn){new Conecta(dir,conn);}
- *En la línea 12, el servidor se mantiene esperando de forma continua la llegada de conexiones clientes, llamando al constructor de la clase Conecta cuando recibe una (pasando como parámetros directorio y socket de la conexión).**
- *¿Qué código de entre los siguientes es válido?**
a) while (1) {conn=ServerSocket.accept(); Conecta(dir,conn);}
b) while (true) {conn=ServerSocket.accept(); new Conecta(dir,conn);}
c) while (true) {conn=listener.accept(); new Conecta(dir,conn);}
d) conn = Iistener.accept(); if (conn){new Conecta(dir,conn);}
La clase estática “Conecta” debe crear un Thread cada vez que haya una conexión, para ello su declaración correcta en la linea 15 sería:
a) static class Conecta extends Thread
b) static class Conecta extends Runnable
c) static class Conecta implements Thread
d) static class Conecta implements Threading
La clase estática “Conecta” debe crear un Thread cada vez que haya una conexión, para ello su declaración correcta en la linea 15 sería:
a) static class Conecta extends Thread
b) static class Conecta extends Runnable
c) static class Conecta implements Thread
d) static class Conecta implements Threading
Java.lang: Es un paquete que se importa por defecto.
- Interface Runnable: Tiene que ver con hilos de ejecución / Interface Iterable: Interface que sirve para definir que de una determinada clase podamos iterar sus objetos: Objetos iterables: Listas, pilas, colas, arboles (estructura de datos). (Interfaces)
- Math: Clase con funciones de matemáticas.
- Object / Class
- String / Integer …Los tipos primitivos tienen unas clases que sirven para envolverles a los tipos básicos. Y nos permite tener otros métodos especiales sobre esos tipos de datos que con ejemplo no tenemos con int
- String buffer / STRINGBUILDER: Son cadenas variables
- Thread
- Override: Anotación
- System: Tiene atributos y métodos de utilidad como por ejemplo para imprimir por consola.
Extends: extends se usa para indicar que la clase que se está definiendo se deriva de la clase base usando la herencia. Básicamente, la palabra clave extends se usa para extender la funcionalidad de la clase principal a la subclase.
Implements: en Java, la palabra clave implements se usa para implementar una interfaz . Una interfaz es un tipo especial de clase que implementa una abstracción completa y solo contiene métodos abstractos. Para acceder a los métodos de la interfaz, la interfaz debe ser “implementada” por otra clase con la palabra clave implements y los métodos deben implementarse en la clase que hereda las propiedades de la interfaz.
En la linea 13 se maneja la excepción capturada, 51 el objeto Exception es “e”, el método utilizado para imprimir el registro de la pila donde se ha iniciado la excepción es:
a) e.printstack();
b) e.printStackTrace();
c) e.getMessage();
d) e.printExceptionLog();
En la linea 13 se maneja la excepción capturada, 51 el objeto Exception es “e”, el método utilizado para imprimir el registro de la pila donde se ha iniciado la excepción es:
a) e.printstack();
b) e.printStackTrace();
c) e.getMessage();
d) e.printExceptionLog();
En la clase Conecta se declaran las variables cadena1 y cadena2 (líneas 18 y 19). ¿En cuál de las siguientes opciones darla un error de compilación la instrucción “If”?
a) If (‘‘TAILlbre’‘.compareTo(cadena1)==true)
b) If (cadena1.equals(cadena2))
c) If (cadena1.compareTo(cadena2)==0)
d) if (‘‘TAILibre’‘.compareTo(cadena1)==0)
En la clase Conecta se declaran las variables cadena1 y cadena2 (líneas 18 y 19). ¿En cuál de las siguientes opciones daría un error de compilación la instrucción “If”?
a) If (‘‘TAILlbre’‘.compareTo(cadena1)==true)
b) If (cadena1.equals(cadena2))
c) If (cadena1.compareTo(cadena2)==0)
d) if (‘‘TAILibre’‘.compareTo(cadena1)==0)
El compareTo(): método compara dos cadenas lexicográficamente. La comparación se basa en el valor Unicode de cada carácter de las cadenas.
El método devuelve 0 si la cadena es igual a la otra cadena. Se devuelve un valor menor que 0 si la cadena es menor que la otra cadena (menos caracteres) y un valor mayor que 0 si la cadena es mayor que la otra cadena (más caracteres).
compareToIgnoreCase() para comparar dos cadenas lexicográficamente, ignorando las diferencias entre mayúsculas y minúsculas.
método equals() para comparar dos cadenas sin tener en cuenta los valores Unicode.
En la línea 4 del anterior código, se quiere declarar el atributo tipo entero “PUERTO” de forma que su valor sea constante 4444 y único para todas las instancias de la clase, la opción válida seria:
a) protected int PUERTO = 4444;
b) final int PUERTO = 4444;
c) int PUERTO = 4444;
d) static final int PUERTO = 4444;
En la línea 4 del anterior código, se quiere declarar el atributo tipo entero “PUERTO” de forma que su valor sea constante 4444 y único para todas las instancias de la clase, la opción válida seria:
a) protected int PUERTO = 4444;
b) final int PUERTO = 4444;
c) int PUERTO = 4444;
d) static final int PUERTO = 4444;
Final: Indica que una variable, método o clase no se va a modificar, lo cuál puede ser útil para añadir más semántica, por cuestiones de rendimiento, y para detectar errores.
- Si una variable se marca como final, no se podrá asignar un nuevo valor a la variable.
- Si una clase se marca como final, no se podrá extender la clase.
- Si es un método el que se declara como final, no se podrá sobreescribir.
Static: el modificador static no sirve para crear constantes, sino para crear miembros que pertenecen a la clase, y no a una instancia de la clase. Esto implica, entre otras cosas, que no es necesario crear un objeto de la clase para poder acceder a estos atributos y métodos. Este es el motivo por el cual es obligatorio que main se declare como static; de esta forma no tenemos que ofrecer un constructor vacío para la clase que contiene el método, o indicar de alguna forma a la máquina virtual cómo instanciar la clase.
- *18. String caden al= “TAl Libre”;**
- *19. String cadena2= “TAl Libre”;**
- *20. Conecta(File dir, Socket conn) {**
- *21. directorio = dir;**
- *22. connection = conn;**
- *23. start() }**
- *24. / /**Método con el código a ejecutar en cada Thread’” }}**
Para poner en marcha el nuevo Thread se llama al método start() en la línea 23, éste es el encargado de llamar al método que contiene el código a ser ejecutado asíncronamente en otro Thread y que se define en la línea 24, el cuál es:
a) public void run() { }
b) public void init() { }
c) public void executeO { }
d) public void thread() { }
TAI-2016
- *18. String caden al= “TAl Libre”;**
- *19. String cadena2= “TAl Libre”;**
- *20. Conecta(File dir, Socket conn) {**
- *21. directorio = dir;**
- *22. connection = conn;**
- *23. start(); }**
- *24. / /**Método con el código a ejecutar en cada Thread’” }}**
Para poner en marcha el nuevo Thread se llama al método start() en la línea 23, éste es el encargado de llamar al método que contiene el código a ser ejecutado asíncronamente en otro Thread y que se define en la línea 24, el cuál es:
a) public void run() { }
b) public void init() { }
c) public void execute() { }
d) public void thread() { }
En lo que respecta a Java:
a) Soporta herencia simple y polimorfismo.
b) Soporta herencia múltiple y polimorfismo.
c) Soporta herencia múltiple y no soporta polimorfismo.
d) Soporta herencia simple y no soporta polimorfismo.
En lo que respecta a Java:
a) Soporta herencia simple y polimorfismo.
b) Soporta herencia múltiple y polimorfismo.
c) Soporta herencia múltiple y no soporta polimorfismo.
d) Soporta herencia simple y no soporta polimorfismo.
Interface: Es unas herramienta que nos sirve para obligar a otros con una determinada especificación funcional.
- Una clase puede implementar uno o varios interfaces.
- Una clase no puede heredar de más de una clase, no existe la herencia múltiple.
- La herencia y la implementación se pueden dar a la vez
En programación orientada a objetos, polimorfismo es la capacidad que tienen los objetos de una clase en ofrecer respuesta distinta e independiente en función de los parámetros (diferentes implementaciones) utilizados durante su invocación.
class Animal {
public void makeSound() {
System.out.println(“Grr…”);
}
}
class Cat extends Animal {
public void makeSound() {
System.out.println(“Meow”);
}
}
class Dog extends Animal {
public void makeSound() {
System.out.println(“Woof”);
}
}
La API de JAVA JAX-RS es:
a) Java API for RESTful Web Services, es una API que proporciona soporte a la creación de servicios web REST.
b) Java API for XML Web Services, es una API para la creación de servicios web.
c) Java API for XML Registries, es una API para acceder a diferentes tipos de registros de metadatos basados en XML.
d) Java API for XML based RPC, es una API que permite invocar un servicio web basado en Java cuya descripción está basada en WSDL.
La API de JAVA JAX-RS es:
a) Java API for RESTful Web Services, es una API que proporciona soporte a la creación de servicios web REST.
b) Java API for XML Web Services, es una API para la creación de servicios web.
c) Java API for XML Registries, es una API para acceder a diferentes tipos de registros de metadatos basados en XML.
d) Java API for XML based RPC, es una API que permite invocar un servicio web basado en Java cuya descripción está basada en WSDL.
JAX-RS: Java API for RESTful Web Services es una API del lenguaje de programación Java que proporciona soporte en la creación de servicios web de acuerdo con el estilo arquitectónico Representational State Transfer (REST).
JAX-RS es una colección de interfaces y anotaciones Java™ que simplifica el desarrollo de aplicaciones REST del lado del servidor. Mediante el uso de la tecnología JAX-RS, las aplicaciones REST (Representational State Transfer).
Indique cuál de las siguientes afirmaciones es FALSA en relación con la Instrucción switch en JAVA:
a) switch nos permite repetir la ejecución de una serie de instrucciones mientras que se cumpla la expresión condicional o aparezca una sentencia break.
b) switch es equivalente a programar usando sentencias if anidadas.
c) La sentencia break asociada al último case (o default) no es necesaria.
d) La expresión asociada a la instrucción switch debe generar valores tipo char, byte, short o int.
Indique cuál de las siguientes afirmaciones es FALSA en relación con la Instrucción switch en JAVA:
a) switch nos permite repetir la ejecución de una serie de instrucciones mientras que se cumpla la expresión condicional o aparezca una sentencia break.
b) switch es equivalente a programar usando sentencias if anidadas.
c) La sentencia break asociada al último case (o default) no es necesaria.
d) La expresión asociada a la instrucción switch debe generar valores tipo char, byte, short o int
switch (expression) {
case value1:
// secuencia de sentencias.
break;;
case value2:
// secuencia de sentencias.
break;;..
case valueN :
// secuencia de sentencias.
break;;
default:
// Default secuencia de sentencias.
} }
En el contexto del lenguaje lava, supongamos que tenemos una matriz SaldoMensual declarada de la siguiente forma: float[] SaldoMensual = new float[12]. Elija de entre las siguientes, la instrucción repetitiva que nos permite recorrer todos sus elementos:
a) for (int i=0;i< 12;1++) System.out.println(SaldoMensual[i]);
b) for (int i=1;i<12;1++) System.out.println(SaldoMensual[i]);
c) for (int i=1;i<=12;i++) System.out.printin(SaldoMensual[i]);
d) for (int i=0;i=12;1++) System.out.println(SaldoMensual[i]);
En el contexto del lenguaje lava, supongamos que tenemos una matriz SaldoMensual declarada de la siguiente forma: float[] SaldoMensual = new float[12]. Elija de entre las siguientes, la instrucción repetitiva que nos permite recorrer todos sus elementos:
a) for (int i=0;i< 12;1++) System.out.println(SaldoMensual[i]);
b) for (int i=1;i<12;1++) System.out.println(SaldoMensual[i]);
c) for (int i=1;i<=12;i++) System.out.printin(SaldoMensual[i]);
d) for (int i=0;i=12;1++) System.out.println(SaldoMensual[i]);
Son palabras reservadas del lenguaje de programación JAVA:
a) assert, boolean, explicit, public, this.
b) abstract, float, include, private, goto.
c) assert, boolean, return, public, this.
d) abstract, float, out, private, goto.
Son palabras reservadas del lenguaje de programación JAVA:
a) assert, boolean, explicit, public, this.
b) abstract, float, include, private, goto.
c) assert, boolean, return, public, this.
d) abstract, float, out, private, goto.
- *Indique qué se imprime por pantalla con el siguiente código java: for(lnt i = 10, j = 1; i> 0; i=i-j) {**
- *System.out.print(i); j++; }**
a) 10873
b) 10963
c) 10851
d) 10751
- *Indique qué se imprime por pantalla con el siguiente código java: for(lnt i = 10, j = 1; i> 0; i=i-j) {**
- *System.out.print(i); j++; }**
a) 10873
b) 10963
c) 10851
d) 10751
for (int i = 0; // índice de control
i < 100; // condición booleana
i++) // modificación del índice tras cada bucle
……..
{
En lo referente a la programación en java, ¿cuál de las siguientes afirmaciones es cierta?
a) Swift es la nueva máquina virtual Java que se ejecuta en Android 7.0.
b) JUnit nos permite crear test de clases Java.
c) Swing es un framework de persistencia de bases de datos.
d) Drupal requiere para su ejecución una máquina virtual Java 1.8
En lo referente a la programación en java, ¿cuál de las siguientes afirmaciones es cierta?
a) Swift es la nueva máquina virtual Java que se ejecuta en Android 7.0.
b) JUnit nos permite crear test de clases Java.
c) Swing es un framework de persistencia de bases de datos.
d) Drupal requiere para su ejecución una máquina virtual Java 1.8
Pruebas unitarias y de carga:
- JUnit+Mockito
- JMeter
API de JAVA proporciona un sistema de autenticación y control de acceso de usuarios y grupos para una aplicación:
a) JAF
b) JAAS
c) JACC
d) JNDI
- *API de JAVA proporciona un sistema de autenticación y control de acceso de usuarios y grupos para una**
- *aplicación:**
a) JAF
b) JAAS
c) JACC
d) JNDI
Java Authentication and Authorization Service, o JAAS, es una Interfaz de Programación de Aplicaciones que permite a las aplicaciones Java acceder a servicios de control de autenticación y acceso.
JAF - JavaBeans Activation Framework. Es una extensión estándar que pueden usar los Beans que funcionan con muchos tipos de datos externos, como medios recuperados de archivos y transmisiones. Es esencialmente un mecanismo generalizado de manejo de contenido/protocolo para Java Beans. El JAF es un conjunto extensible de clases que envuelven fuentes de datos sin procesar arbitrarias para proporcionar acceso a sus datos como flujos u objetos, identificar el tipo MIME de los datos y enumerar un conjunto registrado de “comandos” para operar en los datos.
JACC (Java Authorization Contract for Containers). La especificación JACC (Java Authorization Contract for Containers) define un contrato entre un servidor de aplicaciones Java EE y un proveedor de políticas de autorización. Todos los contenedores Java EE admiten este contrato.
JNDI - La Interfaz de Nombrado y Directorio Java (Java Naming and Directory Interface) es una Interfaz de Programación de Aplicaciones (API) de Java para servicios de directorio. Permite a los clientes descubrir y buscar objetos y datos a través de un nombre. Como todas las APIs de Java que hacen de interfaz con sistemas host, es independiente de la implementación subyacente. Adicionalmente, especifica una interfaz de proveedor de servicio (SPI) que permite que las implementaciones del servicio de directorio sean integradas en el framework. Las implementaciones pueden hacer uso de un servidor, un fichero, o una base de datos; la elección depende del desarrollador.
Bouncy Castle es una librería Java que proporciona una API para:
a) Aritmética.
b) Tratamiento de XML.
c) Criptografía.
d) Generación de informes.
Bouncy Castle es una librería Java que proporciona una API para:
a) Aritmética.
b) Tratamiento de XML.
c) Criptografía.
d) Generación de informes.
LISTADO DE LIBRERIAS / FRAMEWORKS DE JAVA
DOCUMENTALES.
- PDFBox. Manejo de PDF
- iText. Manejo de PDF
- Tika. Deteccion y extraccion de contenido de multitud de formatos
- POI. Manipulacion de documentos de Office
- BeanIO. Ficheros con formato fijo basado en registros
CRIPTOGAFIA:
- BouncyCastle
IDE
- Netbeans
- Eclipse
- IntelliJ
xml
- Xerces
- Xalan
- Woodstox
En Java EE (ahora Jakarta EE) los ejecutables de un proyecto se pueden empaquetar como archivos ¿Cuál de las siguientes opciones NO es un formato válido para este propósito?
a) Enterprise applicatlon Archive (EAR).
b) Resource Adapter Archive (RAR).
c) Binary Application Archive (BAR).
d) Web Application Archive (WAR).
En Java EE (ahora Jakarta EE) los ejecutables de un proyecto se pueden empaquetar como archivos ¿Cuál de las siguientes opciones NO es un formato válido para este propósito?
a) Enterprise applicatlon Archive (EAR).
b) Resource Adapter Archive (RAR).
c) Binary Application Archive (BAR).
d) Web Application Archive (WAR).
WAR (Web Application Archive - Archivo de aplicación web) este fichero es un estándar. En un primer nivel (organizado en carpetas) tenemos todos los ficheros con extensión html, css, imágenes, js, JSP todo lo estático esta en este nivel y lo dinámico esta dentro del directorio WEB-INF, dentro de WEB-INF esta el directorio clases, donde están todas nuestras clases compiladas, en el directorio lib se meten los .jar,
EAR (Enterprise Archive): un EAR es capaz de albergar varios ficheros WAR cada uno de los cuales contiene una aplicación web completa.
Aparte de albergar varias aplicaciones web también tiene la capacidad de contener EJBs que son empaquetados en archivos JAR para su utilización en las distintas aplicaciones web.
Los EAR disponen del fichero application.xml (directorio META-INF) que define la estructura de módulos incluidos en este tipo de empaquetamiento.
RAR (Resource Adapter Archive): un archivo RAR contiene un adaptador de recursos. Definido por las especificaciones de la arquitectura del conector J2EE, un adaptador de recursos es un componente portátil que permite que los beans empresariales, los componentes web y los clientes de aplicaciones accedan a recursos y sistemas empresariales externos. Un adaptador de recursos suele denominarse conector. Un nombre de archivo RAR tiene la extensión .rar
Un applet es:
a) un programa desarrollado en Java cuyo objetivo es proporcionar funcionalidad avanzada a una página web y que se ejecuta habitualmente en el navegador web.
b) Una clase en el lenguaje de programación Java, utilizada para ampliar las capacidades de un servidor.
c) un Java Plug-in que actúa de puente entre los navegadores instalados en el sistema y los distintos entornos de ejecución de java (JRE) que se hayan instalado en la máquina cliente.
d) El componente de los programas encargados del acceso a las bases de datos.
Un applet es:
a) un programa desarrollado en Java cuyo objetivo es proporcionar funcionalidad avanzada a una página web y que se ejecuta habitualmente en el navegador web.
b) Una clase en el lenguaje de programación Java, utilizada para ampliar las capacidades de un servidor.
c) un Java Plug-in que actúa de puente entre los navegadores instalados en el sistema y los distintos entornos de ejecución de java (JRE) que se hayan instalado en la máquina cliente.
d) El componente de los programas encargados del acceso a las bases de datos.
La API de Java para la implementación de servicios web RestFul es:
a) JAX-RS
b) JTA
c) JPA
d) JSTL
TAI-2018-PI
La API de Java para la implementación de servicios web RestFul es:
a) JAX-RS
b) JTA
c) JPA
d) JSTL
JAX-RS: Java API for RESTful Web Services es una API del lenguaje de programación Java que proporciona soporte en la creación de servicios web de acuerdo con el estilo arquitectónico Representational State Transfer (REST).1 JAX-RS usa anotaciones, introducidas en Java SE 5, para simplificar el desarrollo y despliegue de los clientes y puntos finales de los servicios web.
JTA (del inglés Java Transaction API - API para transacciones en Java) es parte de las APIs de Java EE. JTA establece una serie de Interfaces java entre el manejador de transacciones y las partes involucradas en el sistema de transacciones distribuidas: el servidor de aplicaciones, el manejador de recursos y las aplicaciones transaccionales.
JPA -Java Persistence API, es una API de persistencia. Maneja datos relacionales en aplicaciones usando la Plataforma Java en sus ediciones Standard (Java SE) y Enterprise (Java EE).
Persistencia en este contexto cubre tres áreas:
- La API en sí misma, definida en el paquete javax.persistence
- El lenguaje de consulta Java Persistence Query Language (JPQL).
- Metadatos objeto/relacional.
JSTL (JavaServer Pages Standard Tag Library) es una librería de tags estándar que encapsula, en forma de tags, muchas funcionalidades comunes en aplicaciones JSP, de forma que, en lugar que tener que recurrir a varias librerías de tags de distintos distribuidores, sólo necesitaremos tener presente esta librería.
JSTL permite realizar tareas como iteraciones, estructuras condicionales, tags de manipulación de documentos XML, tags SQL, etc. También introduce un lenguaje de expresiones que simplifica el desarrollo de las páginas, y proporciona un API para simplificar la configuración de los tags JSTL y el desarrollo de tags personalizados que sean conformes a las convenciones de JSTL.
¿Qué es Kotlin?
a) Una aplicación del entorno Linux KDE para edición de textos.
b) Un lenguaje de órdenes y shell de Unix.
c) Un lenguaje de programación compatible con el ecosistema Java.
d) Un sistema gestor de base de datos no relacional.
GSI-2019-LI
¿Qué es Kotlin?
a) Una aplicación del entorno Linux KDE para edición de textos.
b) Un lenguaje de órdenes y shell de Unix.
c) Un lenguaje de programación compatible con el ecosistema Java.
d) Un sistema gestor de base de datos no relacional.
ECOSISTEMA JAVA – HERRAMIENTAS
a) IDE’s (Entornos/Editores de desarrollo).
Ej. Eclipse, IntelliJ, Netbeans, …
b) Automatización del desarrollo.
Ej. Ant (build.xml), Maven (pom.xml), Gradle (build.gradle en Groovy or Kotlin DSL) ,
Ivy (extensión de Ant para gestión de dependencias), Jenkins (integración continua)..
c) JDK’s (OpenJDK, Amazon Corretto, IBM JDK, …)
Kotlin: un lenguaje de programación multiplataforma , tipificado estáticamente y de propósito general con inferencia de tipos . Kotlin está diseñado para interoperar completamente con Java , y la versión JVM de la biblioteca estándar de Kotlin depende de la biblioteca de clases de Java , pero la inferencia de tipo permite su sintaxis para ser más conciso.
En la arquitectura de capas de Java EE/Jakarta EE, un servlet se sitúa en:
a) La capa web.
b) La capa cliente.
c) La capa de negocio.
d) La capa de datos.
GSI-2019-LI
En la arquitectura de capas de Java EE/Jakarta EE, un servlet se sitúa en:
a) La capa web.
b) La capa cliente.
c) La capa de negocio.
d) La capa de datos.
En relación a lo anterior, señale la sentencia correcta. (garbage collector)
a) Para que el garbage collector comience a ejecutarse es necesario realizar una llamada al método GC.Collect.
b) Para que el garbage collector comience a ejecutarse es necesario realizar una llamada a la función VirtualAlloc de Windows.
c) Para que el garbage collector comience a ejecutarse es necesario realizar una llamada al método Object.Finalize.
d) En la mayoría de los casos no es necesario llamar a ningún método, dado que el garbage collector se ejecuta continuamente.
GSI-2019-LI
En relación a lo anterior, señale la sentencia correcta. (garbage collector)
a) Para que el garbage collector comience a ejecutarse es necesario realizar una llamada al método GC.Collect.
b) Para que el garbage collector comience a ejecutarse es necesario realizar una llamada a la función VirtualAlloc de Windows.
c) Para que el garbage collector comience a ejecutarse es necesario realizar una llamada al método Object.Finalize.
d) En la mayoría de los casos no es necesario llamar a ningún método, dado que el garbage collector se ejecuta continuamente.
RECOLECTOR DE BASURA (GARBAGE COLLECTOR) (GC): No es más que un hilo de baja prioridad. La recolección y liberación de memoria es responsabilidad de un thead llamado garbage collector. El trabajo de GC es identificar los objetos que no son usados (des referenciado) y no requieren memoria y lo elimina de la memoria dinámica (Heap).
- Todas las clases de java heredan de object, si heredan de object tendrán a su disposición todos los métodos de Object.
- Existe un método llamado gc() dentro de las clases java.Lang.Sytem y java.lang.Runtime cuya iniciales significan “Garbage Collection” y puede ser llamado por el programador dentro de un programa Java.
- Pero el hecho de invocar este método explícitamente no implica que se realice el proceso de “Garbage Collection” inmediatamente, lo único que logra es acelerar los mecanismos para iniciar la recolección (depende de la JVM).
- finalize(). Este método es miembro de la clase Object. El objetivo de este método es liberar los recursos del sistema, como archivos, conexiones abiertas antes de empezar la recolección. Es llamado por el garbage collector.
- Para utilizar este método, hay que sobrecargarlo, proporcionando el código que contenga las acciones que se desee ejecutar antes de liberar la memoria consumida por el objeto.
Jakarta EE Working Group depende de:
a) Eclipse Foundation.
b) Free Software Foundation.
c) Oracle Corporation.
d) The Apache Software Foundation.
GSI-2019-LI
Jakarta EE Working Group depende de:
a) Eclipse Foundation.
b) Free Software Foundation.
c) Oracle Corporation.
d) The Apache Software Foundation.
HISTORIA
El desarrollo de JEE y, por extensión, de las especificaciones que abarca, era controlado por Oracle y realizado según los procedimientos establecidos por el programa Java Community Process (JCP) a partir de lo que se conoce como Java Specification Request (JSR). Una JSR es una solicitud formal que plantea una especificación nueva o la modificación de alguna ya existente.os por el programa Java. Por ejemplo, JPA 2.2 se corresponde con la JSR-338
A finales de 2017, Oracle, como parte de sus acciones para liberar Java, cedió todas las especificaciones a la Fundación Eclipse. JEE pasó a formar parte de la iniciativa Eclipse Enterprise for Java (EE4J), donde
continúa su desarrollo con un nuevo flujo de trabajo ágil y abierto denominado Jakarta EE Specification Process (JESP).
Además los paquetes de Jakarta EE , que en Jakarta EE 8.0 se mantuvieron iguales, han pasado a ser jakarta.* en Jakarta EE 9.0. Desapareciendo los javax.* y los esquemas de los XML cambian de nombre.
Se pueden consultar en https://jakarta.ee/xml/ns/jakartaee/
Indique una característica falsa de Java:
a) Es interpretado y portable a distintas plataformas
b) Soporta programación multihilo (multithreading)
c) Es un entorno seguro porque el sistema runtime incorpora protección contra virus y alteraciones de código
d) Todas las anteriores son características de Java
Indique una característica falsa de Java:
a) Es interpretado y portable a distintas plataformas
b) Soporta programación multihilo (multithreading)
c) Es un entorno seguro porque el sistema runtime incorpora protección contra virus y alteraciones de código
d) Todas las anteriores son características de Java
En el lenguaje Java a las variables de clase (class variables) se les denomina también:
a) Private o privadas
b) Static o estáticas
c) Final o final
d) System o sistema
En el lenguaje Java a las variables de clase (class variables) se les denomina también:
a) Private o privadas
b) Static o estáticas
c) Final o final
d) System o sistema
Static: el modificador static no sirve para crear constantes, sino para crear miembros que pertenecen a la clase, y no a una instancia de la clase. Esto implica, entre otras cosas, que no es necesario crear un objeto de la clase para poder acceder a estos atributos y métodos. Este es el motivo por el cual es obligatorio que main se declare como static; de esta forma no tenemos que ofrecer un constructor vacío para la clase que contiene el método, o indicar de alguna forma a la máquina virtual cómo instanciar la clase.
El API de java utilizado para mapear XML’s desde y hacia clases JAVA es:
a) JAXP.
b) JAXS.
c) JAXB.
d) WSDL.
GSI-2011-PI
El API de java utilizado para mapear XML’s desde y hacia clases JAVA es:
a) JAXP.
b) JAXS.
c) JAXB.
d) WSDL.
JAXP (API de Java para el procesamiento de XML): proporciona la capacidad de validación y análisis de documentos XML. Hay tres interfaces de análisis básicas en JAXP: DOM, SAX y Straming API para XML STAX.
JAXB (Java Architecture for XML Binding): Las clases de Java se asignan a representaciones XML. Las dos características principales de JAXB son la capacidad de clasificar objetos Java en XML y desclasificar XML de nuevo en objetos Java.
JAXM (Java API for XML Messaging): Permite que las aplicaciones de software distribuidas se comuniquen mediante XML (y SOAP). JAXM admite mensajería asíncrona y síncrona.
WSDL, las siglas de Web Services Description Language, es un formato del Extensible Markup Language (XML) que se utiliza para describir servicios web (WS).
WSDL describe la interfaz pública a los servicios Web. Está basado en XML y describe la forma de comunicación, es decir, los requisitos del protocolo y los formatos de los mensajes necesarios para interactuar con los servicios listados en su catálogo. Las operaciones y mensajes que soporta se describen en abstracto y se ligan después al protocolo concreto de red y al formato del mensaje.
¿Cuáles son los contenedores de la tecnología Java EE?
a) EJB Container y Web Container
b) EJB Container, Web Container y Application Client Container
c) b) y Applet Container
d) Ninguna de las anteriores
¿Cuáles son los contenedores de la tecnología Java EE?
a) EJB Container y Web Container
b) EJB Container, Web Container y Application Client Container
c) b) y Applet Container
d) Ninguna de las anteriores
Contenedores de la tecnología Java EE
- EJB Container
- Web Container
- Application Client Container
- Applet Container
¿Qué significa CDI en el contexto de Java EE 7?
a) Contexts and Dependency Injection.
b) Common Display Interface.
c) Context-Dependent Interface.
d) Case-Driven Implementation.
GSI-2013
¿Qué significa CDI en el contexto de Java EE 7?
a) Contexts and Dependency Injection.
b) Common Display Interface.
c) Context-Dependent Interface.
d) Case-Driven Implementation.
El API de Java EE para la implementación de servicios web SOAP es:
a) JWS-XML
b) JAX-WS
c) JSR-WS
d) JAVA-WS
A1 ANALISTAS CONGRESO 2021
El API de Java EE para la implementación de servicios web SOAP es:
a) JWS-XML
b) JAX-WS
c) JSR-WS
d) JAVA-WS
WEB SERVICES: Para hacer servidos webs
- SOAP (api jax-ws) →Muy basados en XML
- REST (api jax-rs)
En el lenguaje de programación JAVA, ¿qué palabra clave se aplica a un atributo para que sea “no serializable”?
a) Transient.
b) Final.
c) Static.
d) Volatile.
A1-2018-EXTRAORDINARIO
En el lenguaje de programación JAVA, ¿qué palabra clave se aplica a un atributo para que sea “no serializable”?
a) Transient.
b) Final.
c) Static.
d) Volatile.
CLASES (atributos, métodos y relaciones).
Modificadores principales: final, static, abstract, protected, private, public, native, volatile, transient.
- Final: definir una constante, o si estamos hablando de herencia, para que nadie pueda sobreescribir o dar un comportamiento a esa clase.
- Static: Aquello relacionado con la clase.
- Protected: Para que solo los hijos vean ese dato, pero los de fuera del esquema de clase no lo van a ver, va a ser private para ellos.
- Native: Sirve para decir que este método no lo voy a codificar en java, lo voy hacer en C++ y esta en esa dll externa, vale para salirse del concepto de máquina virtual.
- Volatile: No se hace copia de los datos, se va al origen. (Para hilos de ejecución).
Con volatile de decimos que vaya a memoria principal a por el dato dato y no se escribe en cache.
- Transient: Cuando serializamos un objeto en Base de Datos o en disco hay atributos que no quiero guardarme, por ejemplo, porque son calculados, en ese caso le podríamos transient.
Señalar la afirmación FALSA sobre los APPLETS de Java:
a) Programa Java que proporciona funcionalidad avanzada a una página web
b) Sólo utiliza recursos del cliente, no interviene nada el servidor
c) En muchas ocasiones no puede leer o escribir ficheros en la máquina local en la que se ejecute
d) Todas las afirmaciones anteriores son verdaderas
Señalar la afirmación FALSA sobre los APPLETS de Java:
a) Programa Java que proporciona funcionalidad avanzada a una página web
b) Sólo utiliza recursos del cliente, no interviene nada el servidor
c) En muchas ocasiones no puede leer o escribir ficheros en la máquina local en la que se ejecute
d) Todas las afirmaciones anteriores son verdaderas
Un applet Java es un applet escrito en el lenguaje de programación Java. Los applets de Java pueden ejecutarse en un navegador web utilizando la Java Virtual Machine (JVM), o en el AppletViewer de Sun.
Entre sus características podemos mencionar un esquema de seguridad que permite que los applets que se ejecutan en el equipo no tengan acceso a partes sensibles (por ej. no pueden escribir archivos), a menos que uno mismo le dé los permisos necesarios en el sistema; la desventaja de este enfoque es que la entrega de permisos es engorrosa para el usuario común, lo cual juega en contra de uno de los objetivos de los Java applets: proporcionar una forma fácil de ejecutar aplicaciones desde el navegador web.
En Java, un applet es un programa que puede incrustarse en un documento HTML, es decir en una página web. Cuando un navegador carga una página web que contiene un applet, este se descarga en el navegador web y comienza a ejecutarse. Esto permite crear programas que cualquier usuario puede ejecutar con tan solo cargar la página web en su navegador.
Los applets de Java suelen tener las siguientes ventajas:
- Son multiplataforma (En S.O para el cual exista una Java Virtual Machine).
- El mismo applet puede trabajar en “todas” las versiones de Java, y no solo en la última versión del plugin.
- Es compatible con la mayoría de los navegadores web.
- Puede ser almacenado en la memoria caché de la mayoría de los navegadores web, de modo que se cargará rápidamente cuando se vuelva a cargar la página web, aunque puede quedar atascado en la caché, causando problemas cuando se publican nuevas versiones.
- Puede tener acceso completo a la máquina en la que se está ejecutando, si el usuario lo permite.
- Puede ejecutarse a velocidades comparables a las de otros lenguajes compilados, como C++ (dependiendo de la versión de la JVM).
- Puede trasladar el trabajo del servidor al cliente, haciendo una solución web más escalable tomando en cuenta el número de usuarios o clientes.
Que característica de Java no es completamente cierta:
a) Es independiente del SO
b) Es independiente de la plataforma
c) Es independiente del HW
d) Write once run everywhere
Que característica de Java no es completamente cierta:
a) Es independiente del SO
b) Es independiente de la plataforma
c) Es independiente del HW
d) Write once run everywhere - El código puede requerir alguna personalización para entorno en que se ejecute.
Indique de los siguientes cual no es un entorno de desarrollo Java:
a) Eclipse.
b) Zend Studio.
c) BlueJ.
d) NetBeans.
Indique de los siguientes cual no es un entorno de desarrollo Java:
a) Eclipse.
b) Zend Studio.
c) BlueJ.
d) NetBeans.
IDE’s (Entornos/Editores de desarrollo)
- Eclipse
- IntelliJ
- Netbeans
BlueJ: es un entorno integrado de desarrollo (de sus siglas en inglés IDE - Integrated Development Environment) para el lenguaje de programación Java, desarrollado principalmente con propósitos educacionales, pero también es adecuado para el desarrollo de software a pequeña escala.
La tecnología DCOM toma las siglas de:
a) Distributed Communication Model
b) Development of Concurrent Multisystems
c) Dynamic Component-Oriented Measure
d) Distributed Component Object Model
La tecnología DCOM toma las siglas de:
a) Distributed Communication Model
b) Development of Concurrent Multisystems
c) Dynamic Component-Oriented Measure
d) Distributed Component Object Model
Cuál de los siguientes métodos son métodos de la clase Thread:
a) sleep(long msec);
b) start();
c) wait();
d) A y B son correctas
Cuál de los siguientes métodos son métodos de la clase Thread:
a) sleep(long msec);
b) start();
c) wait();
d) A y B son correctas
Palabras importantes en relación al tema de hilos:
- Thread y Runnable (se utilizan para implementar la logica de los hilos de tu app)
- Wait() notify() → S_on métodos de la clase Object_ que nos sirven para bloquear y reanudar la ejecución de hilos (por ej. cuando acceden a recursos compartidos). Alguna veces no se puede acceder concurrentemente a un objeto, con lo cual hay que ir bloqueando y reanudando hilos para que entren/accedan de uno en uno.
- synchronized (se utiliza para definir métodos o bloques de código en los cuales solo puede entrar un hilo cada vez). Con esto baja el nivel de concurrencia pero se gana seguridad.
- Métodos de la clase Thread:
- hilo.start() - lanza el hilo hacia el planificador. Indica al intérprete de Java que cree un contexto del hilo del sistema y comience a ejecutarlo
- Thread.currentThread() nos devuelve el hilo actual. El que está ejecuanto esa instrucción en ese momento.
- sleep(long ms): Pone el hilo en pausa el tiempo en milisegundos que le introduzcamos
- run() - Este método es llamado por start() después de que el hilo del sistema se haya inicializado
- stop() - Provoca que el hilo se detenga de manera inmediata
- suspend() - Se diferencia de stop() ya que provoca que se detenga la ejecución de un proceso sin destruir el estado de éste
- resume() - Reanuda un hilo suspendido
Para simular la herencia múltiple de otros lenguajes de programación, Java emplea:
a) Clases abstractas.
b) Interfaces.
c) Sobreescritura de métodos.
d) Conversiones implícitas.
TÉCNICO SUPERIOR DE SISTEMAS Y TECNOLOGÍAS DE LA INFORMACIÓN AYTO VALLADOLID 2021
Para simular la herencia múltiple de otros lenguajes de programación, Java emplea:
a) Clases abstractas.
b) Interfaces.
c) Sobreescritura de métodos.
d) Conversiones implícitas.
Java no soporta la herencia múltiple ya que una clase concreta solo puede tener una clase padre. Pero a cambio dispone de la construcción denominada “Interface” que permite una forma de simulación o implementación limitada de la herencia múltiple.
a) palabra clave interface en lugar de class o abstract class.
b) Todo método es abstracto y público sin necesidad de declararlo, es decir, no hace falta poner abstract public porque por defecto todos los métodos son abstract public. Por lo tanto un interface en Java no implementa ninguno de los métodos que declara: ninguno de sus métodos tiene cuerpo.
c) Las interfaces no tienen ningún constructor.
d) Un interfaz solo admite campos de tipo “public static final”, es decir, campos de clase, públicos y constantes. No hace falta incluir las palabras public static final porque todos los campos serán tratados como si llevaran estas palabras. Recordemos que static equivalía a “de clase” y final a “constante”. Las interfaces pueden ser un lugar interesante para declarar constantes que van a ser usadas por diferentes clases en nuestros programas.
e) Una clase puede derivar de un interface de la misma manera en que puede derivar de otra clase. No obstante, se dice que el interface se implementa (implements), no se extiende (extends) por sus subclases. Por tanto para declarar la herencia de un interface se usa la palabra clave implements en lugar de extends.
interface {
// declare constant fields
// declare methods that abstract
// by default.
}
Ejemplo:
interface printable{
void print();
}
class A6 implements printable{
public void print(){
System.out.println(“Hello”);
}
public static void main(String args[]){
A6 obj = new A6();
obj.print();
}
}
¿Cuál de los siguientes productos java dispone de un motor de workflow?
a) Hibernate.
b) Easy BPM.
c) Spring.
d) jBPM.
GSI-PI-2013
¿Cuál de los siguientes productos java dispone de un motor de workflow?
a) Hibernate.
b) Easy BPM.
c) Spring.
d) jBPM.
jBPM es un motor de flujo de trabajo de código abierto escrito en Java que puede ejecutar los procesos de negocio que se describen en BPMN 2.0 (o su propio lenguaje de definición de procesos jPDL en versiones anteriores). Se distribuye bajo Licencia Apache (o LGPL en versiones anteriores) por la comunidad JBoss.
En relación a la plataforma Java EE señale la respuesta correcta
a) Tanto applets como servlets son componentes que se ejecutan en el cliente.
b) Los componentes EJB (enterprise beans o entreprise java beans) son componentes que se ejecutan en el servidor.
c) El framework de la plataforma Java EE para simplificar el desarrollo de interfaces de usuario en aplicaciones Web Java se denomina JavaGUI.
A2 AYTO MADRID 2019
En relación a la plataforma Java EE señale la respuesta correcta
a) Tanto applets como servlets son componentes que se ejecutan en el cliente.
b) Los componentes EJB (enterprise beans o entreprise java beans) son componentes que se ejecutan en el servidor.
c) El framework de la plataforma Java EE para simplificar el desarrollo de interfaces de usuario en aplicaciones Web Java se denomina JavaGUI.
¿Qué es un JNI?
a) Es una interfaz que permite el acceso a bases de datos desde programas java
b) Es una interfaz de programación para gestionar entornos de ventanas en java
c) Es una interfaz de programación que facilita el acceso, generación y desarrollo de componentes o programas para acceder a ficheros XML
d) Es una interfaz estándar de programación para llamar a métodos nativos escritos en otros lenguajes, desde un programa java
¿Qué es un JNI?
a) Es una interfaz que permite el acceso a bases de datos desde programas java
b) Es una interfaz de programación para gestionar entornos de ventanas en java
c) Es una interfaz de programación que facilita el acceso, generación y desarrollo de componentes o programas para acceder a ficheros XML
d) Es una interfaz estándar de programación para llamar a métodos nativos escritos en otros lenguajes, desde un programa java
El JNI se usa para escribir métodos nativos que permitan solventar situaciones en las que una aplicación no puede ser enteramente escrita en Java, como por ejemplo en el caso de que la biblioteca estándar de clases no proporcione soporte para funcionalidades dependientes de la plataforma.
También se usa para modificar programas existentes escritos en algún otro lenguaje, permitiéndoles ser accesibles desde aplicaciones Java. Muchas de las clases de la API estándar de Java dependen del JNI para proporcionar funcionalidad al desarrollador y al usuario, por ejemplo las funcionalidades de sonido o lectura/escritura de ficheros. El desarrollador debe asegurarse que la API estándar de Java no proporciona una determinada funcionalidad antes de recurrir al JNI, ya que la primera ofrece una implementación segura e independiente de la plataforma.
El framework JNI permite a un método nativo utilizar los objetos Java de la misma forma en que el propio código de Java lo hace. Un método nativo puede crear objetos Java; y examinarlos y utilizarlos para que lleven a cabo su función. Un método nativo puede asimismo examinar y utilizar objetos que han sido creados por código de aplicación escrito en Java.
A menudo se denomina a JNI como la “válvula de escape” para desarrolladores dado que les permite añadir funcionalidades a sus aplicaciones que el API de Java no puede proporcionar.
Dado que -como se ha dicho antes- puede ser usado para interactuar con código escrito en otros lenguajes como C++, también se usa para operaciones y cálculos de alta complejidad temporal, porque el código nativo es por lo general más rápido que el que se ejecuta en una máquina virtual.
¿Cuál de los siguientes paquetes de Java contiene las clases básicas utilizadas habitualmente en la mayoría de los programas Java?
a) java.lang
b) java.beans
c) java.sql
d) java.util
¿Cuál de los siguientes paquetes de Java contiene las clases básicas utilizadas habitualmente en la mayoría de los programas Java?
a) java.lang
b) java.beans
c) java.sql
d) java.util
java.applet: Contiene clases para la creación de applets. Corresponden a aplicaciones que corren en browsers.
java.awt: Clases para gráficas, componentes Graphic User Interface (GUI) y administradores de control de ventanas, además de clases más especializadas como para el procesamiento de imágenes Abstract Windows Toolkit (AWT)
java.io: Contiene clases para manejar la entrada/salida. Tales como ficheros y streams.
java.lang: Contiene clases variadas pero imprescindibles para el lenguaje, como Object, Thread, Math…
El paquete java.lang es importado por defecto en el ficheros de código Java.
java.net: Contiene clases para soportar aplicaciones que acceden a redes. Tales como datagramas y sockets.
java.util: Contiene clases que permiten el acceso a recursos del sistema, etc. Clases adicionales, tales como estructura de datos avacadas y compresión de datos.
java.security: Seguridad, criptografia.
javax.swing: Contiene clases para crear interfaces de usuario mejorando la AWT.
¿Mediante qué tipo de objetos se implementa el acceso a los recursos gestionados con la tecnología JMX?
a) SessionBean
b) JavaBean
c) MBeans
d) MessageDrivenBean
A1-AGE-2015
¿Mediante qué tipo de objetos se implementa el acceso a los recursos gestionados con la tecnología JMX?
a) SessionBean
b) JavaBean
c) MBeans
d) MessageDrivenBean
Respecto a Java, ¿qué opción es correcta?:
a) Las clases predefinidas deben ser compiladas aparte.
b) Una clase representa al conjunto de objetos que comparten una estructura y un comportamiento comunes.
c) Un paquete sólo puede contener una definición de interface o de clase.
d) La herencia extiende las capacidades (atributos y métodos) entre interfaces.
A1-2019-EXTRA
Respecto a Java, ¿qué opción es correcta?:
a) Las clases predefinidas deben ser compiladas aparte.
b) Una clase representa al conjunto de objetos que comparten una estructura y un comportamiento comunes.
c) Un paquete sólo puede contener una definición de interface o de clase.
d) La herencia extiende las capacidades (atributos y métodos) entre interfaces.
En un entorno JAVA, la conexión entre módulos que componen una aplicación se verifica en:
a) Tiempo de compilación.
b) Tiempo de ejecución.
c) Tiempo de verificación.
d) Tiempo de ensamblaje.
GSI-2008
En un entorno JAVA, la conexión entre módulos que componen una aplicación se verifica en:
a) Tiempo de compilación.
b) Tiempo de ejecución.
c) Tiempo de verificación.
d) Tiempo de ensamblaje.
Throwable es la superclase de todos los errores y excepciones de Java SE 7. ¿A qué paquete de Java pertenece Throwable?
a) java.lang
b) java.error
c) java.util
d) Throwable no es una clase, es un interface, y éste pertenece al paquete java.io
GSI-2013-PI
Throwable es la superclase de todos los errores y excepciones de Java SE 7. ¿A qué paquete de Java pertenece Throwable?
a) java.lang
b) java.error
c) java.util
d) Throwable no es una clase, es un interface, y éste pertenece al paquete java.io
GSI-2013-PI
CLASES IMPORTANTES
- java.util.ArrayList / LinkedList
- java.util.HashMap / Hashtable
- java.lang.Thread
- java.lang.Object
- java.lang.Class
- java.util.Iterator
- java.text.SimpleDateFormat
- java.lang.StringBuffer / StringBuilder
- java.io.XXXXX
- Readers/Writers
- InputStreams, OutputStreams
- java.sql.XXXX (PreparedStatement, Connection, ResultSet, …)
- java.util.StringTokenizer
- java.util.regex.Pattern
- java.util.regex.Matcher
- java.util.Properties
- java.util.Calendar
- java.util.concurrent.Executors
- java.time.Instant
¿En qué patrón de diseño está basada la arquitectura de Swing?
a) Modelo-Vista-Controlador (MVC)
b) Singleton
c) Observer
d) Facade
.¿En qué patrón de diseño está basada la arquitectura de Swing?
a) Modelo-Vista-Controlador (MVC)
b) Singleton
c) Observer
d) Facade
Swing es una biblioteca gráfica para Java. Incluye widgets para interfaz gráfica de usuario tales como cajas de texto, botones, listas desplegables y tablas.
Es un framework MVC para desarrollar interfaces gráficas para Java con independencia de la plataforma. Sigue un simple modelo de programación por hilos
¿Qué tecnología Java permite la invocación de métodos de un objeto remoto?
a) RMI
b) JNI
c) JDBC
d) JRM
¿Qué tecnología Java permite la invocación de métodos de un objeto remoto?
a) RMI
b) JNI
c) JDBC
d) JRM
API (conjunto de clases que vienen predefinidas)
- Colecciones (Arrays, Listas, …)
- Excepciones/Errores
- Hilos de Ejecución: base de Java para la ejecución del código.
- Programación de red (bajo nivel): Socket /ServerSocket (tratamiento de TCP/IP)
- Programación de red (alto nivel): RMI (programación distribuida o cliente/servidor o llamada a métodos remotos)
- Persistencia de bajo nivel (JDBC): Guardar /Recuperar/Borrar … info de la BBDD relacional
- Interface Graficos de Usuario (Awt, JFC/Swing)
- Logging
- Soporte XML (JAXP –> SAX,DOM,StaX,TrAX)
- Reflection: capacidad de acceder a los metadatos (clase, atributos, métodos) de un objeto en tiempo de ejecución.
¿Cuál de las siguientes corresponde a una tecnología Java para acceder a bases de datos relacionales?
a) JRDB
b) JPA
c) ORM
d) Ninguna de las anteriores
¿Cuál de las siguientes corresponde a una tecnología Java para acceder a bases de datos relacionales?
a) JRDB
b) JPA
c) ORM
d) Ninguna de las anteriores
SERVICIOS O API’S QUE HAY DENTRO DE CUALQUIER SERVIDOR DE APLICACIONES:
JTA: Servicio de transacciones distribuidas.
UserTransaction (métodos commit(), rollback())
JDBC: No es un API del servidor de aplicaciones, no es un servicio como tal, esto me lo ofrece el Driver. → Servicio de persistencia de bajo nivel.
- Driver / DataSource → getConnection ()
- Connection
- Statement / PreparedStatement / CallableStatement /ResultSet
JMS → Colas de mensajes.
- MessageListener (interface) → onMessage (Message msg)
- Queue / Topic
- Session (createProducer (Destination), createMessage ())
JPA → Api de persistencia, detrás de esto están los productos de hibernate o eclipselink, es el API que vino a substituir los EJB’s Entities.
- EntityManager (métodos persist(), find(), delete())
- @Entity / @Table / @Id / @Column / @OneToMany
JAX-RS → Apis de servios web – rest (basado en htttp).
- @Path / @GET / @POST
JAX-WS → Apis de servios web SOAP (basado en xml sobre htttp).
@WebService / @WebMethod / @WebParam
API JNDI → Es una BdD en mem. que tiene forma de árbol, que sirve para registrar ciertos objetos.
- InitialConext → loopup(…) método para buscar en el árbol.
Señale cuál de las siguientes NO es una de las principales características del lenguaje JAVA:
a) Orientación a objetos
b) Herencia Múltiple
c) Arquitectura Neutra
d) Multithread
GSI-2018-PI
Señale cuál de las siguientes NO es una de las principales características del lenguaje JAVA:
a) Orientación a objetos
b) Herencia Múltiple
c) Arquitectura Neutra
d) Multithread
Java no soporta la herencia múltiple ya que una clase concreta solo puede tener una clase padre. Pero a cambio dispone de la construcción denominada “Interface” que permite una forma de simulación o implementación limitada de la herencia múltiple.
a) palabra clave interface
b) Todo método es abstracto y público
c) Las interfaces no tienen ningún constructor.
d) Un interfaz solo admite campos de tipo “public static final”, es decir, campos de clase, públicos y constantes.
e) Una clase puede derivar de un interface de la misma manera en que puede derivar de otra clase. No obstante, se dice que el interface se implementa (implements), no se extiende (extends) por sus subclases.
interface {
// declare constant fields
// declare methods that abstract
// by default.
}
Ejemplo:
interface printable{
void print();
}
class A6 implements printable{
public void print(){
System.out.println(“Hello”);
}
public static void main(String args[]){
A6 obj = new A6();
obj.print();
}
}
Indica la afirmación correcta sobre la tecnología JavaServer Faces:
a) Ha quedado obsoleta por el framework Spring
b) Es la nueva API Java para desarrollo de transacciones distribuidas
c) Es una novedad del Java 2
d) Es un framework de la capa de presentación para desarrollo de aplicaciones Web
- *Indica la afirmación correcta sobre la tecnología JavaServer Faces:**
a) Ha quedado obsoleta por el framework Spring
b) Es la nueva API Java para desarrollo de transacciones distribuidas
c) Es una novedad del Java 2
d) Es un framework de la capa de presentación para desarrollo de aplicaciones Web
JavaServer Faces (JSF) es una tecnología y framework para aplicaciones Java basadas en web que simplifica el desarrollo de interfaces de usuario en aplicaciones Java EE. JSF usa JavaServer Pages (JSP) como la tecnología que permite hacer el despliegue de las páginas, pero también se puede acomodar a otras tecnologías como XUL (acrónimo de XML-based User-interface Language, lenguaje basado en XML para la interfaz de usuario)
JSF incluye:
- Un conjunto de API para representar componentes de una interfaz de usuario y administrar su estado, manejar eventos, validar entrada, definir un esquema de navegación de las páginas y dar soporte para internacionalización y accesibilidad.
- Un conjunto por defecto de componentes para la interfaz de usuario.
- Dos bibliotecas de etiquetas personalizadas para JavaServer Pages que permiten expresar una interfaz JavaServer Faces dentro de una página JSP.
- Un modelo de eventos en el lado del servidor.
- Administración de estados.
- Beans administrados.
NO es un framework de desarrollo en Java:
a) JavaServer Faces
b) Spring
c) Ruby on Rails
d) Maverick
NO es un framework de desarrollo en Java:
a) JavaServer Faces
b) Spring
c) Ruby on Rails
d) Maverick
El API de Java EE para la implementación de servicios web RESTful es:
a) JAX-RS
b) JWS-REST
c) JSR-RS
d) JAVA-RST
A1 ANALISTAS CONGRESO 2021
El API de Java EE para la implementación de servicios web RESTful es:
a) JAX-RS
b) JWS-REST
c) JSR-RS
d) JAVA-RST
SERVICIOS O API’S QUE HAY DENTRO DE CUALQUIER SERVIDOR DE APLICACIONES:
JTA: Servicio de transacciones distribuidas.
UserTransaction (métodos commit(), rollback())
JDBC: No es un API del servidor de aplicaciones, no es un servicio como tal, esto me lo ofrece el Driver. → Servicio de persistencia de bajo nivel.
- Driver / DataSource → getConnection ()
- Connection
- Statement / PreparedStatement / CallableStatement /ResultSet
JMS → Colas de mensajes.
- MessageListener (interface) → onMessage (Message msg)
- Queue / Topic
- Session (createProducer (Destination), createMessage ())
JPA → Api de persistencia, detrás de esto están los productos de hibernate o eclipselink, es el API que vino a substituir los EJB’s Entities.
- EntityManager (métodos persist(), find(), delete())
- @Entity / @Table / @Id / @Column / @OneToMany
JAX-RS → Apis de servios web – rest (basado en htttp).
- @Path / @GET / @POST
JAX-WS → Apis de servios web SOAP (basado en xml sobre htttp).
@WebService / @WebMethod / @WebParam
API JNDI → Es una BdD en mem. que tiene forma de árbol, que sirve para registrar ciertos objetos.
- InitialConext → loopup(…) método para buscar en el árbol.
A la hora de empaquetar aplicaciones J2EE utilizaremos:
a) .jar
b) “.jar” y “.war” dependiendo del contenido y recursos que utilicemos
c) b) es correcta y además “.ear”, aunque fundamentalmente se restringe para los EJBs
d) El empaquetamiento no se determina en J2EE
A la hora de empaquetar aplicaciones J2EE utilizaremos:
a) .jar
b) “.jar” y “.war” dependiendo del contenido y recursos que utilicemos
c) b) es correcta y además “.ear”, aunque fundamentalmente se restringe para los EJBs
d) El empaquetamiento no se determina en J2EE
EMPAQUETADO DE APLICACIONES:
Dentro del fichero WAR (Web Application Archive - Archivo de aplicación web) este fichero es un estándar. En un primer nivel (organizado en carpetas) tenemos todos los ficheros con extensión html, css, imágenes, js, JSP todo lo estático esta en este nivel y lo dinámico esta dentro del directorio WEB-INF, dentro de WEB-INF esta el directorio clases, donde están todas nuestras clases compiladas, en el directorio lib se meten los .jar, todas las librerías, por ejemplo IText, y luego el web.xml de configuración.
El proceso de desplieje es llevarnos este WAR al servidor de aplicaciones, al Jbox de produccion. Todo lo que se ponga en el WAR lo va a gestionar el WEB CONTAINER.
EAR (Enterprise Archive): Como podemos ver un EAR es capaz de albergar varios ficheros WAR cada uno de los cuales contiene una aplicación web completa.
Aparte de albergar varias aplicaciones web también tiene la capacidad de contener EJBs que son empaquetados en archivos JAR para su utilización en las distintas aplicaciones web.
Los EAR disponen del fichero application.xml (directorio META-INF) que define la estructura de módulos incluidos en este tipo de empaquetamiento
En Java Platform Enterprise Edition existe una tecnología que simplifica la construcción de interfaces de usuario para aplicaciones Java Server. Mediante esta tecnología los desarrolladores pueden construir rápidamente aplicaciones web ensamblado componentes de interfaz de usuario reutilizables. Señale cuál es:
a) JavaServer Pages.
b) JavaServer Faces.
c) JavaServer Servlets.
d) JavaServer Components.
GSI A2 AGE 2008
En Java Platform Enterprise Edition existe una tecnología que simplifica la construcción de interfaces de usuario para aplicaciones Java Server. Mediante esta tecnología los desarrolladores pueden construir rápidamente aplicaciones web ensamblado componentes de interfaz de usuario reutilizables. Señale cuál es:
a) JavaServer Pages.
b) JavaServer Faces.
c) JavaServer Servlets.
d) JavaServer Components.
COMPONENTES
PÁGINAS/VISTAS: los que tienen que ver con la capa de presentación
- JSP “JavaServer Pages”:
HTML con trozos de java ≈ similar al php antiguo.
Los trozos de java <%….%>.
Dentro de esos trozos de java, existen unos objetos predefinidos que son:
- Session
- Request
- page
Pero estamos mezclando trozos de java con html.
- JSTL “JavaServer Pages Standard Tag Library“: (HTML + tag library).
Estas bibliotecas de etiquetas extienden de la especificación de JSP (la cual a su vez extiende de la especificación de Servlet). Su API nos permite además desarrollar nuestras propias bibliotecas de etiquetas.
Se soluciona parte de la ilegibilidad de las paginas JSP.
JSTL es un estándar, pero las etiquetas se las inventa el programador, era la forma de crear esas etiquetas lo que es estándar.
- JSF “JavaServer Pages” (HTML + tagUI):
Se crea un API con componentes de USER interface.
JavaServer Faces (JSF) es una tecnología y framework para aplicaciones Java basadas en web que simplifica el desarrollo de interfaces de usuario en aplicaciones Java EE. JSF usa JavaServer Pages (JSP) como la tecnología que permite hacer el despliegue de las páginas.
JSF incluye:
- Un conjunto de API para representar componentes de una interfaz de usuario y administrar su estado, manejar eventos, validar entrada, definir un esquema de navegación de las páginas y dar soporte para internacionalización y accesibilidad.
- Un conjunto por defecto de componentes para la interfaz de usuario.
- Dos bibliotecas de etiquetas personalizadas para JavaServer Pages que permiten expresar una interfaz JavaServer Faces dentro de una página JSP.
- Un modelo de eventos en el lado del servidor.
- Administración de estados.
- Beans administrados.
El navegador realiza una petición a una determinada URL en la que reside la página JSF que se quiere mostrar. En el servidor un servlet que llamamos motor de JSF recibe la petición y construye un árbol de componentes a partir de la página JSF que se solicita. Este árbol de componentes replica en forma de objetos Java la estructura de la página JSF original y representa la estructura de la página que se va a devolver al navegador. Por ejemplo, si en la página JSF se define un componente de tipo menú con la etiqueta.
En relación a los lenguajes de programación empleados para el desarrollo de aplicaciones para dispositivos móviles, señale la respuesta correcta:
a) Kotlin es un lenguaje que permite desarrollar tanto para Android como para iOS.
b) Kotlin es un lenguaje que permite desarrollar únicamente para Android.
c) Kotlin es un lenguaje que permite desarrollar únicamente para iOS.
En relación a los lenguajes de programación empleados para el desarrollo de aplicaciones para dispositivos móviles, señale la respuesta correcta:
a) Kotlin es un lenguaje que permite desarrollar tanto para Android como para iOS.
b) Kotlin es un lenguaje que permite desarrollar únicamente para Android.
c) Kotlin es un lenguaje que permite desarrollar únicamente para iOS.
ECOSISTEMA JAVA – HERRAMIENTAS
a) IDE’s (Entornos/Editores de desarrollo).
Ej. Eclipse, IntelliJ, Netbeans, …
b) Automatización del desarrollo.
Ej. Ant (build.xml), Maven (pom.xml), Gradle (build.gradle en Groovy or Kotlin DSL) ,
Ivy (extensión de Ant para gestión de dependencias), Jenkins (integración continua)..
c) JDK’s (OpenJDK, Amazon Corretto, IBM JDK, …)
Kotlin: un lenguaje de programación multiplataforma , tipificado estáticamente y de propósito general con inferencia de tipos . Kotlin está diseñado para interoperar completamente con Java , y la versión JVM de la biblioteca estándar de Kotlin depende de la biblioteca de clases de Java , pero la inferencia de tipo permite su sintaxis para ser más conciso.
Para el concepto de struts, indique cuál de las siguientes opciones es correcta:
a) Struts es un framework que se basa en el patrón MVC (Model View Controller)
b) Struts es un framework que se basa en la tecnología JSF (Java Server Faces)
c) Struts es un patrón de diseño para plataformas “.NET”
d) Struts es un patrón de diseño para plataformas JEE
A1 Xunta de Galicia 2011A1
Para el concepto de struts, indique cuál de las siguientes opciones es correcta:
a) Struts es un framework que se basa en el patrón MVC (Model View Controller)
b) Struts es un framework que se basa en la tecnología JSF (Java Server Faces)
c) Struts es un patrón de diseño para plataformas “.NET”
d) Struts es un patrón de diseño para plataformas JEE
LIBRERIAS DE TERCERDOS - Frameworks
Frameworks MVC
- Spring MVC
- Struts
- PrimeFaces / ICEFaces
- GWT
- Vaadin
- Wicket
JNDI se usa para el acceso a:
a) Datos de ficheros
b) Sistemas gestores de bases de datos
c) Directorios de nombres
d) Colas de mensajería
A1 AGE 2015
JNDI se usa para el acceso a:
a) Datos de ficheros
b) Sistemas gestores de bases de datos
c) Directorios de nombres
d) Colas de mensajería
SERVICIOS O API’S QUE HAY DENTRO DE CUALQUIER SERVIDOR DE APLICACIONES:
JTA: Servicio de transacciones distribuidas.
UserTransaction (métodos commit(), rollback())
JDBC: No es un API del servidor de aplicaciones, no es un servicio como tal, esto me lo ofrece el Driver. → Servicio de persistencia de bajo nivel.
- Driver / DataSource → getConnection ()
- Connection
- Statement / PreparedStatement / CallableStatement /ResultSet
JMS → Colas de mensajes.
- MessageListener (interface) → onMessage (Message msg)
- Queue / Topic
- Session (createProducer (Destination), createMessage ())
JPA → Api de persistencia, detrás de esto están los productos de hibernate o eclipselink, es el API que vino a substituir los EJB’s Entities.
- EntityManager (métodos persist(), find(), delete())
- @Entity / @Table / @Id / @Column / @OneToMany
JAX-RS → Apis de servios web – rest (basado en htttp).
- @Path / @GET / @POST
JAX-WS → Apis de servios web SOAP (basado en xml sobre htttp).
- @WebService / @WebMethod / @WebParam
API JNDI → Es una BdD en mem. que tiene forma de árbol, que sirve para registrar ciertos objetos.
- InitialConext → loopup(…) método para buscar en el árbol.
¿Cuál de estas acciones se permite ejecutar en Java a un applet no firmado descargado de Internet?
a) Leer ficheros locales
b) Cargar librerías nativas
c) Conectarse a la máquina desde la que se descargó
d) Llamar a métodos privados de otras applets de la misma página
¿Cuál de estas acciones se permite ejecutar en Java a un applet no firmado descargado de Internet?
a) Leer ficheros locales
b) Cargar librerías nativas
c) Conectarse a la máquina desde la que se descargó
d) Llamar a métodos privados de otras applets de la misma página
¿Cuál de los siguientes NO es un formato válido para el empaquetamiento de aplicaciones en J2EE (Java 2 Enterprise Edition)?
a) WAR (Web Archive).
b) EAR (Enterprise Archive).
c) BAR (Bean Archive).
d) JAR (Java Archive).
A1 AGE 2006
¿Cuál de los siguientes NO es un formato válido para el empaquetamiento de aplicaciones en J2EE (Java 2 Enterprise Edition)?
a) WAR (Web Archive).
b) EAR (Enterprise Archive).
c) BAR (Bean Archive).
d) JAR (Java Archive).
EMPAQUETADO DE APLICACIONES:
Dentro del fichero WAR (Web Application Archive - Archivo de aplicación web) este fichero es un estándar. En un primer nivel (organizado en carpetas) tenemos todos los ficheros con extensión html, css, imágenes, js, JSP todo lo estático esta en este nivel y lo dinámico esta dentro del directorio WEB-INF, dentro de WEB-INF esta el directorio clases, donde están todas nuestras clases compiladas, en el directorio lib se meten los .jar, todas las librerías, por ejemplo IText, y luego el web.xml de configuración.
El proceso de desplieje es llevarnos este WAR al servidor de aplicaciones, al Jbox de produccion. Todo lo que se ponga en el WAR lo va a gestionar el WEB CONTAINER.
EAR (Enterprise Archive): Como podemos ver un EAR es capaz de albergar varios ficheros WAR cada uno de los cuales contiene una aplicación web completa.
Aparte de albergar varias aplicaciones web también tiene la capacidad de contener EJBs que son empaquetados en archivos JAR para su utilización en las distintas aplicaciones web.
Los EAR disponen del fichero application.xml (directorio META-INF) que define la estructura de módulos incluidos en este tipo de empaquetamiento.
¿Qué es un Scriptlet JSP?
a) Cualquier bloque de código Java válido que se encuentre entre los delimitadores <– y –>
b) Cualquier bloque de código Java válido que se encuentre entre los delimitadores <* y *>
c) Cualquier bloque de código Java válido que se encuentre entre los delimitadores <+ y +>
d) Cualquier bloque de código Java válido que se encuentre entre los delimitadores <% y %>
A2 Universidad Politécnica de Madrid 2011
¿Qué es un Scriptlet JSP?
a) Cualquier bloque de código Java válido que se encuentre entre los delimitadores <– y –>
b) Cualquier bloque de código Java válido que se encuentre entre los delimitadores <* y *>
c) Cualquier bloque de código Java válido que se encuentre entre los delimitadores <+ y +>
d) Cualquier bloque de código Java válido que se encuentre entre los delimitadores <% y %>
JDeveloper es:
a) Un entorno de desarrollo integrado (IDE)
b) Una base de datos
c) Un gestor de contenidos
d) Un gestor de informes
JDeveloper es:
a) Un entorno de desarrollo integrado (IDE)
b) Una base de datos
c) Un gestor de contenidos
d) Un gestor de informes
¿Cuál es la interfaz estándar de programación Java para invocar a métodos nativos escritos en otros lenguajes como C o C++?
a) JAXP
b) JNI
c) JNDI
d) JDBC
A1 AGE 2015
¿Cuál es la interfaz estándar de programación Java para invocar a métodos nativos escritos en otros lenguajes como C o C++?
a) JAXP
b) JNI
c) JNDI
d) JDBC
¡ojo! API JNDI → Es una BdD en mem. que tiene forma de árbol, que sirve para registrar ciertos objetos.
El JNI se usa para escribir métodos nativos que permitan solventar situaciones en las que una aplicación no puede ser enteramente escrita en Java, como por ejemplo en el caso de que la biblioteca estándar de clases no proporcione soporte para funcionalidades dependientes de la plataforma.
También se usa para modificar programas existentes escritos en algún otro lenguaje, permitiéndoles ser accesibles desde aplicaciones Java. Muchas de las clases de la API estándar de Java dependen del JNI para proporcionar funcionalidad al desarrollador y al usuario, por ejemplo las funcionalidades de sonido o lectura/escritura de ficheros. El desarrollador debe asegurarse que la API estándar de Java no proporciona una determinada funcionalidad antes de recurrir al JNI, ya que la primera ofrece una implementación segura e independiente de la plataforma.
El framework JNI permite a un método nativo utilizar los objetos Java de la misma forma en que el propio código de Java lo hace. Un método nativo puede crear objetos Java; y examinarlos y utilizarlos para que lleven a cabo su función. Un método nativo puede asimismo examinar y utilizar objetos que han sido creados por código de aplicación escrito en Java.
A menudo se denomina a JNI como la “válvula de escape” para desarrolladores dado que les permite añadir funcionalidades a sus aplicaciones que el API de Java no puede proporcionar.
Dado que -como se ha dicho antes- puede ser usado para interactuar con código escrito en otros lenguajes como C++, también se usa para operaciones y cálculos de alta complejidad temporal, porque el código nativo es por lo general más rápido que el que se ejecuta en una máquina virtual.
Si una aplicación web desplegada en una JVM utiliza un servlet para generar páginas web de forma dinámica, dicho servlet no implementa la interfaz SingleThreadModel, y en un momento determinado se encuentra recibiendo múltiples peticiones de clientes de forma concurrente, ¿cuántos objetos de dicha clase estarán cargados en la memoria de la JVM?
a) 0
b) 1
c) Tantos como peticiones concurrentes tenga
d) Tantos como le permita la memoria de la JVM
A1 AGE 2015
Si una aplicación web desplegada en una JVM utiliza un servlet para generar páginas web de forma dinámica, dicho servlet no implementa la interfaz SingleThreadModel, y en un momento determinado se encuentra recibiendo múltiples peticiones de clientes de forma concurrente, ¿cuántos objetos de dicha clase estarán cargados en la memoria de la JVM?
a) 0
b) 1
c) Tantos como peticiones concurrentes tenga
d) Tantos como le permita la memoria de la JVM
SingleThreadModel, concurrencia en servlet
Obsoleto. A partir de Java Servlet API 2.4,
Interfaz pública SingleThreadModel: Garantiza que los servlets manejen solo una solicitud a la vez. Esta interfaz no tiene métodos.
Si un servlet implementa esta interfaz, tiene la garantía de que no se ejecutarán dos subprocesos al mismo tiempo en el método service del servlet. El contenedor de servlet puede garantizar esta garantía sincronizando el acceso a una única instancia del servlet, o manteniendo un conjunto de instancias de servlet y enviando cada nueva solicitud a un servlet libre.
Tenga en cuenta que SingleThreadModel no resuelve todos los problemas de seguridad de subprocesos.
Indica cuál no es una ventaja de la tecnología JSF:
a) Ofrece un alto nivel de abstracción en el diseño de la interfaz
b) JSF comparada con otras tecnologías MVC (Spring MVC, Struts, WebWork, Tapestry,…) está mas orientada a componentes y eventos
c) Para el desarrollo de aplicaciones se basa en la implementación de complejas clases Java
d) Permite la creación de nuevos componentes gráficos o widgets
Indica cuál no es una ventaja de la tecnología JSF:
a) Ofrece un alto nivel de abstracción en el diseño de la interfaz
b) JSF comparada con otras tecnologías MVC (Spring MVC, Struts, WebWork, Tapestry,…) está mas orientada a componentes y eventos
c) Para el desarrollo de aplicaciones se basa en la implementación de complejas clases Java
d) Permite la creación de nuevos componentes gráficos o widgets
- JSF “JavaServer Pages” (HTML + tagUI):
Se crea un API con componentes de USER interface.
JavaServer Faces (JSF) es una tecnología y framework para aplicaciones Java basadas en web que simplifica el desarrollo de interfaces de usuario en aplicaciones Java EE. JSF usa JavaServer Pages (JSP) como la tecnología que permite hacer el despliegue de las páginas.
JSF incluye:
- Un conjunto de API para representar componentes de una interfaz de usuario y administrar su estado, manejar eventos, validar entrada, definir un esquema de navegación de las páginas y dar soporte para internacionalización y accesibilidad.
- Un conjunto por defecto de componentes para la interfaz de usuario.
- Dos bibliotecas de etiquetas personalizadas para JavaServer Pages que permiten expresar una interfaz JavaServer Faces dentro de una página JSP.
- Un modelo de eventos en el lado del servidor.
- Administración de estados.
- Beans administrados.
El navegador realiza una petición a una determinada URL en la que reside la página JSF que se quiere mostrar. En el servidor un servlet que llamamos motor de JSF recibe la petición y construye un árbol de componentes a partir de la página JSF que se solicita. Este árbol de componentes replica en forma de objetos Java la estructura de la página JSF original y representa la estructura de la página que se va a devolver al navegador. Por ejemplo, si en la página JSF se define un componente de tipo menú con la etiqueta.
Indique cuál es una ventaja de los applets sobre los scripts:
a) El código fuente de los applets no es visible
b) Un applet descarga en una sola conexión todos los componentes necesarios
c) Las respuestas ‘a’ y ‘b’ son verdaderas
d) Las respuestas ‘a’ y ‘b’ son falsas
Indique cuál es una ventaja de los applets sobre los scripts:
a) El código fuente de los applets no es visible
b) Un applet descarga en una sola conexión todos los componentes necesarios
c) Las respuestas ‘a’ y ‘b’ son verdaderas
d) Las respuestas ‘a’ y ‘b’ son falsas
¿Cuál de las siguientes afirmaciones es correcta respecto a mod_security?
a) Permite el control de acceso a Bases de Datos distribuidas.
b) Monitorización en tiempo real y control de acceso de aplicaciones web.
c) Control de acceso en la transmisión de paquetes a través del protocolo SFTP.
d) Control y monitorización para despliegues automatizados en un entorno de integración continua.
GSI-2017
¿Cuál de las siguientes afirmaciones es correcta respecto a mod_security?
a) Permite el control de acceso a Bases de Datos distribuidas.
b) Monitorización en tiempo real y control de acceso de aplicaciones web.
c) Control de acceso en la transmisión de paquetes a través del protocolo SFTP.
d) Control y monitorización para despliegues automatizados en un entorno de integración continua.
Indique la afirmación falsa en relación a los servlets de Java:
a) Se alojan en un contenedor web
b) Es un elemento de la capa de presentación
c) Se pueden invocar desde una URL
d) Sólo generan contenido estático
Indique la afirmación falsa en relación a los servlets de Java:
a) Se alojan en un contenedor web
b) Es un elemento de la capa de presentación
c) Se pueden invocar desde una URL
d) Sólo generan contenido estático
Un servlet es una clase en el lenguaje de programación Java, utilizada para ampliar las capacidades de un servidor. Aunque los servlets pueden responder a cualquier tipo de solicitudes, estos son utilizados comúnmente para extender las aplicaciones alojadas por servidores web, de tal manera que pueden ser vistos como applets de Java que se ejecutan en servidores en vez de navegadores web. Este tipo de servlets son la contraparte Java de otras tecnologías de contenido dinámico Web, como PHP y ASP.NET.
La palabra servlet deriva de otra anterior, applet, que se refiere a pequeños programas que se ejecutan en el contexto de un navegador web.
El uso más común de los servlets es generar páginas web de forma dinámica a partir de los parámetros de la petición que envíe el navegador web.