Las 50 mejores preguntas y respuestas de entrevistas de Struts (2024)

Aquí hay preguntas y respuestas de la entrevista de Struts para principiantes y candidatos experimentados para obtener el trabajo de sus sueños.


1. ¿Cuáles son los componentes de Struts Framework?

Struts framework se compone de los siguientes componentes:

  1. Servlets Java
  2. JSP (páginas del servidor Java)
  3. Etiquetas personalizadas
  4. Recursos de mensajes

Descarga gratuita de PDF: Preguntas y respuestas de la entrevista de Struts


2. ¿Cuál es el papel de un controlador en las aplicaciones basadas en MVC?

Es trabajo de los controladores transferir las solicitudes a los modelos apropiados, ya que están vinculados a la capa del modelo de la arquitectura MVC. Los controladores utilizan la información de asignación de los archivos de configuración para la transferencia de solicitudes.


3. ¿Cuál es el flujo de solicitudes en las aplicaciones basadas en Struts?

Las aplicaciones basadas en Struts utilizan el patrón de diseño MVC. El flujo de solicitudes es el siguiente:

  • El usuario interactúa con View haciendo clic en cualquier enlace o enviando cualquier formulario.
  • Tras la interacción del usuario, la solicitud se pasa al controlador.
  • El controlador es responsable de pasar la solicitud a la acción apropiada.
  • La acción es responsable de llamar a una función en Model que tiene implementada toda la lógica comercial.
  • La acción recibe la respuesta de la capa del modelo, que luego la pasa a la vista donde el usuario puede ver la respuesta.

4. ¿Qué archivo usa el controlador para obtener información de mapeo para el enrutamiento de solicitudes?

El controlador utiliza un archivo de configuración "struts-config.xml archivo para obtener toda la información de mapeo para decidir qué acción usar para el enrutamiento de la solicitud del usuario.


5. ¿Cuál es el rol de Action Class en Struts?

En Struts, Action Class actúa como un controlador y realiza las siguientes tareas clave:

  • Después de recibir la solicitud del usuario, procesa la solicitud del usuario.
  • Utiliza el modelo apropiado y extrae datos del modelo (si es necesario).
  • Selecciona la vista adecuada para mostrar la respuesta al usuario.
Preguntas de la entrevista de Struts
Preguntas de la entrevista de Struts

6. ¿Cómo se crea un bean actionForm?

Sustituto

El bean actionForm se crea extendiendo la clase org.apache.struts.action.ActionForm

In the following example we have created an actionForm bean with the name 'testForm':

import javax.servlet.http.HttpServletRequest; 
import org.apache.struts.action.*; 
public class testForm extends ActionForm { 
private String Id=null; 
private String State=null; 
public void setId(String id){
this.Id=id; 
} 
public String getId(){
return this.Id;
}
public void setState(String state){ 
this.State=state; 
} 
public String getState(){ 
return this.State; 
}

7. ¿Cuáles son los dos tipos de validaciones compatibles con Validator Framework?

Validator Framework se utiliza para la validación de datos de formulario. Este marco proporciona dos tipos de validaciones:

  1. Validación del lado del cliente en el navegador del usuario
  2. Validación del lado del servidor

8. ¿Cuáles son los pasos de la instalación de Struts?

Para usar el marco Struts, solo necesitamos agregar el archivo Struts.Jar en nuestro entorno de desarrollo. Una vez que el archivo jar está disponible en CLASSPATH, podemos usar el marco y desarrollar aplicaciones basadas en Strut.

Preguntas de la entrevista de Struts
Preguntas de la entrevista de Struts

9. ¿Cómo se habilita la validación del lado del cliente en un formulario JSP?

Para habilitar la validación del lado del cliente en Struts, primero debemos habilitar el complemento del validador en el archivo struts-config.xml. Esto se hace agregando las siguientes entradas de configuración en este archivo:

<!--  Validator plugin -->
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>

Luego, las reglas de validación se definen en el archivo de validación.xml. Si un formulario contiene un campo de correo electrónico y queremos habilitar la validación del lado del cliente para este campo, se agrega el siguiente código en el archivo de validación.xml:

<form name="testForm">
<field  property="email"
depends="required">
<arg key="testForm.email"/>
</field>
</form>

10. ¿Cómo se usa la etiqueta de mapeo de acción para el reenvío de solicitudes en el archivo de configuración de Struts?

En el archivo de configuración de Struts (struts-config.xml), las opciones de reenvío se definen en la etiqueta de mapeo de acción.

En el siguiente ejemplo, cuando un usuario haga clic en el hipervínculo prueba.hacer, la solicitud será enviada a /páginas/pruebas.jsp utilizando las siguientes configuraciones del archivo struts-config.xml:

<action  path="/test" forward="/pages/testing.jsp">

Este reenvío tendrá lugar cuando el usuario haga clic en el siguiente hipervínculo en la página jsp:

<html:link</strong> page="/test.do</strong>">Controller Example</html:link>

11. ¿Cómo se puede controlar el envío de formularios duplicados en Struts?

En Struts, la clase de acción proporciona dos métodos importantes que se pueden usar para evitar envíos de formularios duplicados.

El método saveToken() de la clase de acción genera un token único y lo guarda en la sesión del usuario. El método isTokenValid() se usa luego para verificar la unicidad de los tokens.


12. En Struts, ¿cómo podemos acceder a los Java beans y sus propiedades?

Bean Tag Library es una biblioteca de Struts que se puede utilizar para acceder a los beans de Java.


13. ¿Qué archivo de configuración se utiliza para almacenar la información de configuración de JSP en Struts?

Para los detalles de configuración de JSP, se utiliza el archivo Web.xml.


14. ¿Cuál es el propósito del método Ejecutar de la clase de acción?

El método de ejecución de la clase de acción es responsable de la ejecución de la lógica empresarial. Si se requiere algún procesamiento en la solicitud del usuario, se realiza en este método. Este método devuelve el objeto actionForward que enruta la aplicación a la página adecuada.

En el siguiente ejemplo, el método de ejecución devolverá un objeto de actionForward definido en struts-config.xml con el nombre "exampleAction":

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class actionExample extends Action
{
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception{
return mapping.findForward("exampleAction");
}
}

15. ¿Cuál es la diferencia entre los archivos validation.xml y validator-rules.xml en el marco de Struts Validation?

En Validation.xml, definimos reglas de validación para cualquier bean Java específico, mientras que en el archivo validator-rules.xml, se definen reglas de validación estándar y genéricas.


16. ¿Cómo podemos mostrar todos los errores de validación al usuario en la página JSP?

Para mostrar todos los errores de validación basados ​​en las reglas de validación definidas en el archivo validation.xml, usamos etiqueta en nuestro archivo JSP.


17. ¿Qué es el manejo declarativo de excepciones en Struts?

Cuando la lógica para el manejo de excepciones se define en struts-config.xml o dentro de la etiqueta de acción, se conoce como manejo de excepciones declarativo en Struts.

En el siguiente ejemplo, hemos definido una excepción en el archivo struts-config.xml para NullPointerException:

<global-exceptions>

<exception key="test.key"

Type="java.lang.NullPointerException"

Path="/WEB-INF/errors/error_page.jsp"

</global-exceptions>

18. ¿Qué es DynaActionForm?

DynaActionForm es un tipo especial de clase actionForm (subclase de la clase ActionForm) que se usa para crear beans de forma dinámica. Utiliza archivos de configuración para la creación de beans de formulario.


19. ¿Qué cambios de configuración se requieren para usar Tiles en Struts?

Para crear componentes reutilizables con el marco de trabajo de Tiles, debemos agregar el siguiente código de definición de complemento en el archivo struts-config.xml:

<plug-in className="org.apache.struts.tiles.TilesPlugin" >

<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />

<set-property property="moduleAware" value="true" />

</plug-in>

20. ¿Cuál es la diferencia entre Jakarta Struts y Apache Struts? ¿Cuál es mejor usar?

Ambos son iguales y no hay diferencia entre ellos.


21. ¿Para qué sirve el archivo de configuración Struts.xml?

El archivo Struts.xml es uno de los archivos de configuración clave del marco Struts que se utiliza para definir la asignación entre la URL y la acción. Cuando el controlador recibe la solicitud de un usuario, el controlador utiliza la información de asignación de este archivo para seleccionar la clase de acción adecuada.


22. ¿Cómo se definen las bibliotecas de etiquetas en Struts?

Las bibliotecas de etiquetas se definen en el archivo de configuración (web.xml) dentro etiqueta de la siguiente manera:

<taglib>

<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>

<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>

</taglib>

23. ¿Cuál es el significado de las etiquetas lógicas en Struts?

El uso de etiquetas lógicas en Struts ayuda a escribir un código limpio y eficiente en la capa de presentación sin el uso de scriptlets.


24. ¿Cuáles son los dos tipos de alcance para formbeans?

  • Alcance de la solicitud: Los valores de Formbean están disponibles solo en la solicitud actual
  • Alcance de la sesión: Los valores de Formbean están disponibles para todas las solicitudes en la sesión actual.

25. ¿Cómo podemos agrupar acciones relacionadas en un grupo en Struts?

Para agrupar varias acciones relacionadas en un grupo, podemos usar la clase DispatcherAction.


26. ¿Cuándo debemos usar SwtichAction?

El mejor escenario para usar la clase SwitchAction es cuando tenemos una aplicación modular con múltiples módulos trabajando por separado. Usando la clase SwitchAction podemos cambiar de un recurso en un módulo a otro recurso en algún módulo diferente de la aplicación.


27. ¿Cuáles son los beneficios del marco Struts?

Struts se basa en MVC y, por lo tanto, hay una buena separación de las diferentes capas en Struts, lo que facilita el desarrollo y la personalización de las aplicaciones de Struts. El uso de diferentes archivos de configuración hace que las aplicaciones de Struts sean fácilmente configurables. Además, Struts es de código abierto y, por lo tanto, rentable.


28. ¿Qué pasos se requieren para la migración de una aplicación de Struts1 a Struts2?

Se requieren los siguientes pasos para la migración de Struts1 a Struts2:

  1. Mueva Struts1 actionForm a Struts2 POJO.
  2. Convierta el archivo de configuración de Struts1 (struts-config.xml) al archivo de configuración de Struts2 (struts.xml)

29. ¿Cómo se validan las propiedades de un formulario en Struts?

Para la validación de las propiedades pobladas, se usa el método de validación () de la clase ActionForm antes de manejar el control de formbean a la clase Action.


30. ¿Cuál es el uso del método de reinicio de la clase ActionForm?

El método de restablecimiento de la clase actionForm se utiliza para borrar los valores de un formulario antes del inicio de una nueva solicitud.


31. ¿Cuáles son las desventajas de Struts?

Aunque Struts tiene una gran cantidad de ventajas asociadas, también requiere una mayor curva de aprendizaje y también reduce la transparencia en el proceso de desarrollo.

Struts también carece de la documentación adecuada y, para muchos de sus componentes, los usuarios no pueden obtener los recursos en línea adecuados para obtener ayuda.


32. ¿Cuál es el uso del archivo resourcebundle.properties en el marco de validación de Struts?

El archivo resourcebundle.properties se usa para definir mensajes de error específicos en pares de valores clave para cualquier posible error que pueda ocurrir en el código.

Este enfoque ayuda a mantener limpio el código, ya que el desarrollador no necesita incrustar todos los mensajes de error dentro del código.


33. ¿Puedo tener html propiedad de formulario sin métodos asociados de getter y setter formbean?

Para cada propiedad de formulario html, se deben definir los métodos getter y setter en el formbean; de lo contrario, la aplicación generará un error.


34. ¿Cuántos controladores de servlet se utilizan en una aplicación Struts?

Struts framework funciona con el concepto de enfoque de control centralizado y toda la aplicación está controlada por un único controlador de servlet. Por lo tanto, solo necesitamos un controlador de servlet en una aplicación de servlet.


35. Para una sola aplicación de Struts, ¿podemos tener varios archivos struts-config.xml?

Podemos tener cualquier número de archivos Struts-config.xml para una sola aplicación.

Necesitamos las siguientes configuraciones para esto:

<servlet>

<servlet-name>action</servlet-name>

<servlet-class>

org.apache.struts.action.ActionServlet

</servlet-class>

<init-param>

<param-name>config</param-name>

<param-value>

/WEB-INF/struts-config.xml

/WEB-INF/struts-config_user.xml

/WEB-INF/struts-config_admin.xml

</param-value>

</init-param>

.............

.............

</servlet>

36. ¿Qué componentes del modelo son compatibles con Struts?

Struts admite todo tipo de modelos, incluidos Java Beans, EJB, CORBA. Sin embargo, Struts no tiene ningún soporte incorporado para ningún modelo específico y es elección del desarrollador optar por cualquier modelo.


37. ¿Cuándo es útil usar IncluirAcción?

IncludeAction es una clase de acción proporcionada por Struts, que es útil cuando se requiere una integración entre Struts y una aplicación basada en Servlet.


38. ¿Son seguros los hilos Struts?

Sí, los Struts son seguros para subprocesos. En Struts, no se requiere un nuevo objeto de servlet para manejar cada solicitud; más bien, se utiliza un nuevo subproceso de objeto de clase de acción para cada nueva solicitud.


39. ¿Qué cambios de configuración se requieren para usar archivos de recursos en Struts?

Los archivos de recursos (archivos .properties) se pueden usar en Struts agregando la siguiente entrada de configuración en el archivo struts-config.xml:

<message-resources parameter="com.login.struts.ApplicationResources"/>

40. ¿Cómo se pueden usar beans anidados en aplicaciones de Struts?

Los struts proporcionan una biblioteca de etiquetas separada (Biblioteca de etiquetas anidadas) para este propósito. Con esta biblioteca, podemos anidar los beans en cualquier aplicación basada en Struts.


41. ¿Cuáles son las clases principales de Struts Framework?

Las siguientes son las clases principales proporcionadas por Struts Framework:

  • Clase de acción
  • Clase ActionForm
  • Clase de asignación de acción
  • Clase ActionForward
  • Clase ActionServlet

42. ¿Podemos manejar excepciones en Struts programáticamente?

Sí, podemos manejar excepciones en Struts programáticamente usando bloques try, catch en el código.

try {

// Struts code

}

Catch (Exception e) {

// exception handling code

}

43. ¿Es Struts Framework parte de J2EE?

Aunque el marco Struts se basa en tecnologías J2EE como JSP, Java Beans, Servlets, etc., no forma parte de los estándares J2EE.


44. ¿Cómo se configura el mapeo de acciones en Struts?

Las asignaciones de acciones se configuran en el archivo de configuración struts-config.xml bajo la etiqueta como sigue:

<pre><action-mappings>
<action path="/login"
type="login.loginAction"
name="loginForm"
input="/login.jsp"
scope="request"
validate="true">
<forward name="success" path="/index.jsp"/>
<forward name="failure" path="/login_error.jsp"/>
</action>
</action-mappings>

45. ¿Cuándo se debe optar por Struts Framework?

Los struts se deben usar cuando alguna o algunas de las siguientes condiciones son verdaderas:

  • Se requiere un desarrollo de aplicaciones de nivel empresarial altamente robusto.
  • Se requiere una aplicación reutilizable y altamente configurable.
  • Se requiere una aplicación basada en MVC débilmente acoplada con una clara segregación de diferentes capas.

46. ​​¿Por qué ActionServlet es singleton en Struts?

En el marco de Struts, actionServlet actúa como un controlador y todas las solicitudes realizadas por los usuarios son controladas por este controlador. ActionServlet se basa en un patrón de diseño singleton ya que solo se necesita crear un objeto para esta clase de controlador. Más adelante se crean varios subprocesos para cada solicitud de usuario.


47. ¿Cuáles son los pasos necesarios para configurar el marco de validación en Struts?

Se requieren los siguientes pasos para configurar el marco del validador en Struts: – Pronunciación incorrecta

  1. En el directorio WEB-INF, coloque los archivos valdator-rules.xml y validation.xml.
  2. Habilite el complemento de validación en los archivos struts-config.xml agregando lo siguiente:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml"/>
</plug-in>

48. ¿Qué tecnologías se pueden utilizar en View Layer en Struts?

En Struts, podemos usar cualquiera de las siguientes tecnologías en la capa de vista:

  • JSP
  • HTML
  • XML / XSLT
  • Archivos WML
  • Plantillas de velocidad
  • Servlets

49. ¿Cuáles son las condiciones para que actionForm funcione correctamente?

ActionForm debe cumplir las siguientes condiciones para funcionar correctamente:

  • Debe tener un constructor sin argumentos.
  • Debe tener métodos getter y setter públicos para todas sus propiedades.

50. ¿Qué biblioteca proporciona Struts para elementos de formulario como casillas de verificación, cuadros de texto, etc.?

Los struts proporcionan una biblioteca de etiquetas HTML que se puede usar para agregar elementos de formulario como campos de texto, cuadros de texto, botones de radio, etc.


Estas preguntas de la entrevista también te ayudarán en tu viva(orals)

Compartir

3 Comentarios

  1. Muchas gracias señor, Impresionante ;):) el enlace de descarga del pdf no funciona. Gracias

    1. ¡Error solucionado! gracias por informar

Deje un comentario

Su dirección de correo electrónico no será publicada. Las areas obligatorias están marcadas como requeridas *