Le 50 migliori domande e risposte dell'intervista con Struts (2025)
Ecco le domande e le risposte al colloquio con Struts per le matricole e i candidati esperti per ottenere il lavoro dei loro sogni.
1. Quali sono i componenti di Struts Framework?
Il framework Struts è composto dai seguenti componenti:
- Servlet Java
- JSP (pagine server Java)
- Tag personalizzati
- Risorse dei messaggi
Download gratuito del PDF: domande e risposte all'intervista su Struts
2. Qual è il ruolo di un gestore nelle applicazioni basate su MVC?
È compito dei gestori trasferire le richieste ai modelli appropriati poiché sono vincolate al livello del modello dell'architettura MVC. I gestori utilizzano le informazioni di mappatura dai file di configurazione per il trasferimento delle richieste.
3. Qual è il flusso di richieste nelle applicazioni basate su Struts?
Le applicazioni basate su Struts utilizzano il modello di progettazione MVC. Il flusso delle richieste è il seguente:
- L'utente interagisce con View facendo clic su qualsiasi collegamento o inviando qualsiasi modulo.
- All'interazione dell'utente, la richiesta viene trasmessa al titolare del trattamento.
- Il titolare del trattamento è responsabile di trasmettere la richiesta all'azione appropriata.
- L'azione è responsabile della chiamata di una funzione nel modello in cui è implementata tutta la logica aziendale.
- La risposta dal livello del modello viene ricevuta dall'azione che poi la trasmette alla vista in cui l'utente è in grado di vedere la risposta.
4. Quale file viene utilizzato dal controller per ottenere informazioni sulla mappatura per l'instradamento delle richieste?
Il controller utilizza un file di configurazione “struts-config.xml file per ottenere tutte le informazioni sulla mappatura per decidere quale azione utilizzare per l'instradamento della richiesta dell'utente.
5. Qual è il ruolo della Action Class in Struts?
In Struts, Action Class funge da controller ed esegue le seguenti attività chiave:
- Dopo aver ricevuto la richiesta dell'utente, elabora la richiesta dell'utente.
- Utilizza il modello appropriato ed estrae i dati dal modello (se richiesto).
- Seleziona la visualizzazione corretta per mostrare la risposta all'utente.
6. Come viene creato un bean actionForm?
Surrogato
Il bean actionForm viene creato estendendo la classe 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. Quali sono i due tipi di convalide supportate da Validator FrameWork?
Validator Framework viene utilizzato per la convalida dei dati del modulo. Questo framework fornisce due tipi di convalide:
- Convalida lato client sul browser dell'utente
- Convalida lato server
8. Quali sono le fasi dell'installazione di Struts?
Per utilizzare il framework Struts, dobbiamo solo aggiungere il file Struts.Jar nel nostro ambiente di sviluppo. Una volta che il file jar è disponibile nel CLASSPATH, possiamo utilizzare il framework e sviluppare applicazioni basate su Strut.
9. Come viene abilitata la convalida lato client su un modulo JSP?
Per abilitare la validazione lato client in Struts, dobbiamo prima abilitare il plug-in di validazione nel file struts-config.xml. Questo viene fatto aggiungendo le seguenti voci di configurazione in questo file:
<!-- 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>
Quindi le regole di convalida vengono definite nel file validation.xml. Se un modulo contiene un campo email e desideriamo abilitare la convalida lato client per questo campo, nel file validation.xml viene aggiunto il seguente codice:
<form name="testForm"> <field property="email" depends="required"> <arg key="testForm.email"/> </field> </form>
10. Come viene utilizzato il tag di mappatura delle azioni per l'inoltro delle richieste nel file di configurazione Struts?
Nel file di configurazione di Struts (struts-config.xml), le opzioni di inoltro sono definite nel tag di mappatura delle azioni.
Nell'esempio seguente, quando un utente farà clic sul collegamento ipertestuale test.do, la richiesta verrà inoltrata a /pages/testing.jsp utilizzando le seguenti configurazioni dal file struts-config.xml:
<action path="/test" forward="/pages/testing.jsp">
Questo inoltro avverrà quando l'utente farà clic sul seguente collegamento ipertestuale nella pagina jsp:
<html:link</strong> page="/test.do</strong>">Controller Example</html:link>
11. Come è possibile controllare l'invio di moduli duplicati in Struts?
In Struts, la classe action fornisce due metodi importanti che possono essere utilizzati per evitare invii di moduli duplicati.
Il metodo saveToken() della classe action genera un token univoco e lo salva nella sessione dell'utente. Viene utilizzato il metodo isTokenValid(), quindi utilizzato per verificare l'unicità dei token.
12. In Struts, come possiamo accedere ai bean Java e alle loro proprietà?
Bean Tag Library è una libreria Struts che può essere utilizzata per accedere ai Java Bean.
13. Quale file di configurazione viene utilizzato per memorizzare le informazioni di configurazione JSP in Struts?
Per i dettagli sulla configurazione JSP, viene utilizzato il file Web.xml.
14. Qual è lo scopo del metodo Execute della classe di azione?
Il metodo Esegui della classe di azione è responsabile dell'esecuzione della logica aziendale. Se è necessaria un'elaborazione su richiesta dell'utente, viene eseguita con questo metodo. Questo metodo restituisce l'oggetto actionForward che instrada l'applicazione alla pagina appropriata.
Nell'esempio seguente, il metodo di esecuzione restituirà un oggetto di actionForward definito in struts-config.xml con il nome "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. Qual è la differenza tra i file validation.xml e validator-rules.xml nel framework di convalida Struts?
In Validation.xml definiamo le regole di convalida per qualsiasi bean Java specifico mentre nel file validator-rules.xml vengono definite le regole di convalida standard e generiche.
16. Come possiamo visualizzare tutti gli errori di convalida all'utente sulla pagina JSP?
Per visualizzare tutti gli errori di convalida in base alle regole di convalida definite nel file validation.xml, utilizziamo tag nel nostro file JSP.
17. Cos'è la gestione dichiarativa delle eccezioni in Struts?
Quando la logica per la gestione delle eccezioni è definita in struts-config.xml o all'interno del tag action, in Struts è nota come gestione dichiarativa delle eccezioni.
Nell'esempio seguente, abbiamo definito un'eccezione nel file struts-config.xml per NullPointerException:
<global-exceptions> <exception key="test.key" Type="java.lang.NullPointerException" Path="/WEB-INF/errors/error_page.jsp" </global-exceptions>
18. Cos'è DynaActionForm?
DynaActionForm è un tipo speciale di classe actionForm (sottoclasse della classe ActionForm) utilizzata per creare dinamicamente form bean. Utilizza file di configurazione per la creazione del bean del modulo.
19. Quali modifiche alla configurazione sono necessarie per utilizzare Tiles in Struts?
Per creare componenti riutilizzabili con il framework Tiles, dobbiamo aggiungere il seguente codice di definizione del plugin nel file 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. Qual è la differenza tra Jakarta Struts e Apache Struts? Quale è meglio usare?
Entrambi sono uguali e non c'è differenza tra loro.
21. A cosa serve il file di configurazione Struts.xml?
Il file Struts.xml è uno dei file di configurazione chiave del framework Struts che viene utilizzato per definire la mappatura tra URL e azione. Quando la richiesta di un utente viene ricevuta dal controller, il controller utilizza le informazioni di mappatura da questo file per selezionare la classe di azione appropriata.
22. Come vengono definite le librerie di tag in Struts?
Le librerie di tag sono definite nel file di configurazione (web.xml) all'interno taggare come segue:
<taglib> <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri> <taglib-location>/WEB-INF/struts-bean.tld</taglib-location> </taglib>
23. Qual è il significato dei tag logici in Struts?
L'uso dei tag logici in Struts aiuta a scrivere un codice pulito ed efficiente a livello di presentazione senza l'uso di scriptlet.
24. Quali sono i due tipi di ambito per i formbean?
- Ambito della richiesta: I valori Formbean sono disponibili solo nella richiesta corrente
- Ambito della sessione: I valori Formbean sono disponibili per tutte le richieste nella sessione corrente.
25. Come possiamo raggruppare azioni correlate in un unico gruppo in Struts?
Per raggruppare più azioni correlate in un unico gruppo, possiamo utilizzare la classe DispatcherAction.
26. Quando dovremmo utilizzare SwtichAction?
Lo scenario migliore per utilizzare la classe SwitchAction è quando disponiamo di un'applicazione modulare con più moduli che funzionano separatamente. Utilizzando la classe SwitchAction possiamo passare da una risorsa in un modulo a un'altra risorsa in un modulo diverso dell'applicazione.
27. Quali sono i vantaggi del framework Struts?
Struts è basato su MVC e quindi esiste una buona separazione dei diversi livelli in Struts che semplifica lo sviluppo e la personalizzazione delle applicazioni Struts. L'uso di diversi file di configurazione rende le applicazioni Struts facilmente configurabili. Inoltre, Struts è open source e quindi conveniente.
28. Quali passaggi sono necessari per la migrazione di un'applicazione da Struts1 a Struts2?
Per la migrazione da Struts1 a Struts2 sono necessari i seguenti passaggi:
- Sposta Struts1 actionForm in Struts2 POJO.
- Converti il file di configurazione Struts1 (struts-config.xml) nel file di configurazione Struts2 (struts.xml)
29. Come vengono convalidate le proprietà di un modulo in Struts?
Per la convalida delle proprietà popolate, viene utilizzato il metodo validate() della classe ActionForm prima di gestire il controllo del formbean nella classe Action.
30. A cosa serve il metodo reset della classe ActionForm?
Il metodo reset della classe actionForm viene utilizzato per cancellare i valori di un modulo prima dell'avvio di una nuova richiesta.
31. Quali sono gli svantaggi di Struts?
Sebbene Struts abbia un gran numero di vantaggi associati, richiede anche una curva di apprendimento più ampia e riduce anche la trasparenza nel processo di sviluppo.
Struts inoltre non dispone di una documentazione adeguata e per molti dei suoi componenti gli utenti non sono in grado di ottenere risorse online adeguate per ricevere assistenza.
32. Qual è l'uso del file resourcesbundle.properties nel framework di convalida Struts?
Il file resourcesbundle.properties viene utilizzato per definire messaggi di errore specifici nelle coppie chiave-valore per eventuali errori che potrebbero verificarsi nel codice.
Questo approccio aiuta a mantenere il codice pulito poiché lo sviluppatore non ha bisogno di incorporare tutti i messaggi di errore all'interno del codice.
33. Posso avere html proprietà del modulo senza metodi formbean getter e setter associati?
Per ogni proprietà del modulo html, è necessario definire i metodi getter e setter nel formbean, altrimenti l'applicazione genererà un errore.
34. Quanti controller servlet vengono utilizzati in un'applicazione Struts?
Il framework Struts funziona sul concetto di approccio di controllo centralizzato e l'intera applicazione è controllata da un singolo controller servlet. Pertanto, è necessario un solo controller servlet in un'applicazione servlet.
35. Per una singola applicazione Struts, possiamo avere più file struts-config.xml?
Possiamo avere un numero qualsiasi di file Struts-config.xml per una singola applicazione.
Abbiamo bisogno delle seguenti configurazioni per questo:
<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. Quali componenti del modello sono supportati da Struts?
Struts supporta tutti i tipi di modelli inclusi Java Bean, EJB, CORBA. Tuttavia, Struts non dispone di alcun supporto integrato per alcun modello specifico ed è scelta dello sviluppatore optare per qualsiasi modello.
37. Quando è utile utilizzare IncludeAction?
IncludeAction è una classe di azioni fornita da Struts che è utile quando è richiesta un'integrazione tra Struts e un'applicazione basata su Servlet.
38. Il thread Struts è sicuro?
Sì, i puntoni sono thread-safe. In Struts non è richiesto un nuovo oggetto servlet per gestire ciascuna richiesta; piuttosto viene utilizzato un nuovo thread dell'oggetto della classe di azione per ogni nuova richiesta.
39. Quali modifiche alla configurazione sono necessarie per utilizzare i file di risorse in Struts?
I file di risorse (file .properties) possono essere utilizzati in Struts aggiungendo la seguente voce di configurazione nel file struts-config.xml:
<message-resources parameter="com.login.struts.ApplicationResources"/>
40. Come possono essere utilizzati i bean annidati nelle applicazioni Struts?
Struts fornisce a questo scopo una libreria di tag separata (Nested Tag Library). Usando questa libreria, possiamo nidificare i bean in qualsiasi applicazione basata su Struts.
41. Quali sono le classi Core di Struts Framework?
Di seguito sono riportate le classi principali fornite da Struts Framework:
- Classe d'azione
- Classe ActionForm
- Classe ActionMapping
- Classe ActionForward
- Classe ActionServlet
42. Possiamo gestire le eccezioni in Struts a livello di codice?
Sì, possiamo gestire le eccezioni in Struts a livello di codice utilizzando i blocchi try, catch nel codice.
try { // Struts code } Catch (Exception e) { // exception handling code }
43. Struts Framework è parte di J2EE?
Sebbene il framework Struts sia basato su tecnologie J2EE come JSP, Java Beans, Servlet ecc., non fa parte degli standard J2EE.
44. Come viene configurata la mappatura delle azioni in Struts?
Le mappature delle azioni sono configurate nel file di configurazione struts-config.xml sotto il tag come segue:
<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. Quando conviene optare per Struts Framework?
I puntoni dovrebbero essere utilizzati quando si verifica una o alcune delle seguenti condizioni:
- È richiesto uno sviluppo di applicazioni a livello aziendale altamente robusto.
- È necessaria un'applicazione riutilizzabile e altamente configurabile.
- È necessaria un'applicazione basata su MVC ad accoppiamento flessibile con una chiara segregazione dei diversi livelli.
46. Perché ActionServlet è singleton in Struts?
Nel framework Struts, actionServlet funge da controller e tutte le richieste effettuate dagli utenti sono controllate da questo controller. ActionServlet si basa su un modello di progettazione singleton poiché è necessario creare un solo oggetto per questa classe controller. Successivamente vengono creati più thread per ciascuna richiesta dell'utente.
47. Quali sono i passaggi necessari per impostare il framework di validazione in Struts?
Per impostare il framework di validazione in Struts sono necessari i seguenti passaggi: – Ortografia sbagliata
- Nella directory WEB-INF posizionare i file valdator-rules.xml e validation.xml.
- Abilita il plugin di convalida nei file struts-config.xml aggiungendo quanto segue:
<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. Quali tecnologie possono essere utilizzate nel View Layer in Struts?
In Struts, possiamo utilizzare una qualsiasi delle seguenti tecnologie nel livello di visualizzazione:
- JSP
- HTML
- XML/XSLT
- File WML
- Modelli di velocità
- servlet
49. Quali sono le condizioni affinché actionForm funzioni correttamente?
ActionForm deve soddisfare le seguenti condizioni per funzionare correttamente:
- Deve avere un costruttore senza argomenti.
- Dovrebbe avere metodi getter e setter pubblici per tutte le sue proprietà.
50. Quale libreria è fornita da Struts per gli elementi del modulo come caselle di controllo, caselle di testo ecc.?
Struts fornisce una libreria di tag HTML che può essere utilizzata per aggiungere elementi del modulo come campi di testo, caselle di testo, pulsanti di opzione ecc.
Queste domande del colloquio ti aiuteranno anche nel tuo viva(orale)
Grazie mille signore, fantastico ;):) il collegamento per il download del pdf non funziona. Grazie
Errore risolto! Grazie per la segnalazione
Grazie Signore :):)