50 suosituinta Struts-haastattelun kysymystä ja vastausta (2025)
Tässä on Strutsin haastattelukysymyksiä ja vastauksia niin fuksilaisille kuin kokeneille hakijoille unelmatyönsä saamiseksi.
1. Mitkä ovat Struts Frameworkin osat?
Struts runko koostuu seuraavista osista:
- Java Servletit
- JSP (Java-palvelinsivut)
- Mukautetut tunnisteet
- Viestiresurssit
Ilmainen PDF-lataus: Struts-haastattelun kysymyksiä ja vastauksia
2. Mikä on käsittelijän rooli MVC-pohjaisissa sovelluksissa?
Käsittelijöiden tehtävänä on siirtää pyynnöt sopiviin malleihin, koska ne on sidottu MVC-arkkitehtuurin mallikerrokseen. Käsittelijät käyttävät määritystiedostojen kartoitustietoja pyyntöjen siirtoon.
3. Mikä on pyyntöjen virtaus Struts-pohjaisissa sovelluksissa?
Tukipohjaiset sovellukset käyttävät MVC-suunnittelumallia. Pyyntöjen kulku on seuraava:
- Käyttäjä on vuorovaikutuksessa View-sovelluksen kanssa napsauttamalla mitä tahansa linkkiä tai lähettämällä minkä tahansa lomakkeen.
- Käyttäjän vuorovaikutuksessa pyyntö välitetään ohjaimelle.
- Rekisterinpitäjä on vastuussa pyynnön välittämisestä asianmukaisiin toimenpiteisiin.
- Action on vastuussa funktion kutsumisesta mallissa, jossa on kaikki liiketoimintalogiikka toteutettu.
- Toiminto vastaanottaa vastauksen mallikerroksesta, joka sitten välittää sen näkymään, jossa käyttäjä näkee vastauksen.
4. Mitä tiedostoa ohjain käyttää kartoitustietojen saamiseksi pyyntöjen reititystä varten?
Ohjain käyttää asetustiedostoa "struts-config.xml tiedostoa saadaksesi kaikki kartoitustiedot, jotta voit päättää, mitä toimintoa käytetään käyttäjän pyynnön reitittämiseen.
5. Mikä on Action Classin rooli Strutsissa?
Strutsissa Action Class toimii ohjaimena ja suorittaa seuraavat avaintehtävät:
- Saatuaan käyttäjäpyynnön se käsittelee käyttäjän pyynnön.
- Käyttää sopivaa mallia ja hakee tiedot mallista (tarvittaessa).
- Valitsee oikean näkymän, joka näyttää vastauksen käyttäjälle.
6. Miten actionForm-papu luodaan?
Korvike
actionForm-papu luodaan laajentamalla luokkaa 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. Mitä kahta validointityyppiä Validator FrameWork tukee?
Validator Frameworkia käytetään lomaketietojen validointiin. Tämä kehys tarjoaa kahdentyyppisiä vahvistuksia:
- Asiakaspuolen vahvistus käyttäjän selaimessa
- Palvelinpuolen vahvistus
8. Mitkä ovat tukijalkojen asennuksen vaiheet?
Jotta voimme käyttää Struts-kehystä, meidän tarvitsee vain lisätä Struts.Jar-tiedosto kehitysympäristöömme. Kun jar-tiedosto on saatavilla CLASSPATHissa, voimme käyttää kehystä ja kehittää Strut-pohjaisia sovelluksia.
9. Miten asiakaspuolen vahvistus otetaan käyttöön JSP-lomakkeella?
Jotta asiakaspuolen validointi voidaan ottaa käyttöön Strutsissa, meidän on ensin otettava käyttöön validointilaajennus struts-config.xml-tiedostossa. Tämä tehdään lisäämällä seuraavat määritysmerkinnät tähän tiedostoon:
<!-- 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>
Tämän jälkeen validointisäännöt määritellään validation.xml-tiedostossa. Jos lomake sisältää sähköpostikentän ja haluamme ottaa käyttöön asiakaspuolen vahvistuksen tälle kentälle, validation.xml-tiedostoon lisätään seuraava koodi:
<form name="testForm"> <field property="email" depends="required"> <arg key="testForm.email"/> </field> </form>
10. Miten toimintakartoitustunnistetta käytetään pyynnön edelleenlähettämiseen Struts-määritystiedostossa?
Struts-määritystiedostossa (struts-config.xml) edelleenlähetysasetukset määritellään action-mapping-tunnisteen alla.
Seuraavassa esimerkissä, kun käyttäjä napsauttaa hyperlinkkiä test.do, pyyntö välitetään osoitteeseen /pages/testing.jsp käyttämällä seuraavia kokoonpanoja struts-config.xml-tiedostosta:
<action path="/test" forward="/pages/testing.jsp">
Tämä edelleenlähetys tapahtuu, kun käyttäjä napsauttaa seuraavaa hyperlinkkiä jsp-sivulla:
<html:link</strong> page="/test.do</strong>">Controller Example</html:link>
11. Miten lomakkeen kaksoiskappaleen lähettämistä voidaan ohjata Strutsissa?
Strutsissa toimintaluokka tarjoaa kaksi tärkeää menetelmää, joiden avulla voidaan välttää päällekkäisiä lomakkeiden lähetyksiä.
saveToken() -toimintoluokka luo yksilöllisen tunnuksen ja tallentaa sen käyttäjän istuntoon. isTokenValid() -menetelmää käytetään ja sitä käytetään sitten merkkien ainutlaatuisuuden tarkistamiseen.
12. Kuinka voimme käyttää Strutsissa Java-papuja ja niiden ominaisuuksia?
Bean Tag Library on Struts-kirjasto, jota voidaan käyttää Java-papujen käyttämiseen.
13. Mitä asetustiedostoa käytetään JSP-määritystietojen tallentamiseen Strutsiin?
JSP-määritystietojen saamiseksi käytetään Web.xml-tiedostoa.
14. Mikä on Execute method of action -luokan tarkoitus?
Suorita toimintatapa -luokka vastaa liiketoimintalogiikan toteuttamisesta. Jos käyttäjän pyynnöstä vaaditaan käsittelyä, se suoritetaan tällä menetelmällä. Tämä menetelmä palauttaa actionForward-objektin, joka reitittää sovelluksen oikealle sivulle.
Seuraavassa esimerkissä suoritusmenetelmä palauttaa struts-config.xml:ssä määritellyn actionForward-objektin nimellä "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. Mitä eroa validation.xml- ja validator-rules.xml-tiedostoilla on Struts Validation -kehyksessä?
Validation.xml:ssä määritämme vahvistussäännöt mille tahansa tietylle Java-pavulle, kun taas validator-rules.xml-tiedostossa määritetään vakio- ja yleiset vahvistussäännöt.
16. Kuinka voimme näyttää kaikki vahvistusvirheet käyttäjälle JSP-sivulla?
Näytämme kaikki validointivirheet validation.xml-tiedostossa määritettyjen vahvistussääntöjen perusteella -tunniste JSP-tiedostossamme.
17. Mikä on deklaratiivinen poikkeuskäsittely Strutsissa?
Kun poikkeuksien käsittelyn logiikka on määritelty tiedostossa struts-config.xml tai toimintotunnisteessa, se tunnetaan Strutsissa deklaratiivisena poikkeuskäsittelynä.
Seuraavassa esimerkissä olemme määrittäneet poikkeuksen struts-config.xml-tiedostoon NullPointerExceptionille:
<global-exceptions> <exception key="test.key" Type="java.lang.NullPointerException" Path="/WEB-INF/errors/error_page.jsp" </global-exceptions>
18. Mikä DynaActionForm on?
DynaActionForm on erityinen actionForm-luokka (ActionForm-luokan alaluokka), jota käytetään lomakepapujen luomiseen dynaamisesti. Se käyttää konfigurointitiedostoja lomakepapujen luomiseen.
19. Mitä kokoonpanomuutoksia tarvitaan, jotta Tiles in Strutsissa voidaan käyttää?
Uudelleenkäytettävien komponenttien luomiseksi Tiles-kehyksellä meidän on lisättävä seuraava laajennuksen määrityskoodi struts-config.xml-tiedostoon:
<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. Mitä eroa on Jakarta Strutseilla ja Apache Strutseilla? Kumpaa on parempi käyttää?
Molemmat ovat samanlaisia, eikä niiden välillä ole eroa.
21. Mitä hyötyä Struts.xml-määritystiedostosta on?
Struts.xml-tiedosto on yksi Struts-kehyksen tärkeimmistä määritystiedostoista, jota käytetään määrittämään URL-osoitteen ja toiminnon välinen yhdistäminen. Kun ohjain vastaanottaa käyttäjän pyynnön, ohjain käyttää tämän tiedoston kartoitustietoja valitakseen sopivan toimintaluokan.
22. Miten tunnistekirjastot määritellään Strutsissa?
Tunnistekirjastot määritellään sisällä olevassa asetustiedostossa (web.xml). tagi seuraavasti:
<taglib> <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri> <taglib-location>/WEB-INF/struts-bean.tld</taglib-location> </taglib>
23. Mikä merkitys logiikkatunnisteilla on Strutsissa?
Logiikkatunnisteiden käyttö Strutsissa auttaa kirjoittamaan puhdasta ja tehokasta koodia esitystasolle ilman komentosarjoja.
24. Mitkä ovat formbeansin kaksi laajennustyyppiä?
- Pyynnön laajuus: Formbean-arvot ovat saatavilla vain nykyisessä pyynnössä
- Istunnon laajuus: Formbean-arvot ovat saatavilla kaikille nykyisen istunnon pyynnöille.
25. Kuinka voimme ryhmitellä toisiinsa liittyvät toiminnot yhteen ryhmään Strutsissa?
Jos haluat ryhmitellä useita toisiinsa liittyviä toimintoja yhteen ryhmään, voimme käyttää DispatcherAction-luokkaa.
26. Milloin meidän tulee käyttää SwtichActionia?
Paras skenaario käyttää SwitchAction-luokkaa on, kun meillä on modulaarinen sovellus, jossa useita moduuleja toimii erikseen. SwitchAction-luokan avulla voimme siirtyä yhden moduulin resurssista toiseen resurssiin jossain eri sovelluksen moduulissa.
27. Mitkä ovat Struts-kehyksen edut?
Struts perustuu MVC:hen, joten Strutsissa on hyvä erotella eri kerrokset, mikä tekee Strutsin sovellusten kehittämisestä ja mukauttamisesta helppoa. Erilaisten konfigurointitiedostojen käyttö tekee Struts-sovelluksista helposti konfiguroitavissa. Lisäksi Struts on avoimen lähdekoodin ja siten kustannustehokas.
28. Mitä vaiheita tarvitaan sovelluksen siirtymiseen Struts1:stä Struts2:een?
Seuraavat vaiheet vaaditaan Struts1:stä Struts2:een siirtymiseen:
- Siirrä Struts1 actionForm kohteeseen Struts2 POJO.
- Muunna Struts1-määritystiedosto (struts-config.xml) Struts2-määritystiedostoksi (struts.xml)
29. Miten lomakkeen ominaisuudet validoidaan Strutsissa?
Täytettyjen ominaisuuksien validointiin käytetään ActionForm-luokan validite()-menetelmää ennen formbeanin ohjauksen käsittelyä Action-luokkaan.
30. Mitä hyötyä ActionForm-luokan reset-menetelmästä on?
reset method of actionForm-luokkaa käytetään tyhjentämään lomakkeen arvot ennen uuden pyynnön aloittamista.
31. Mitkä ovat Strutien haitat?
Vaikka Strutiin liittyy paljon etuja, se vaatii myös suurempaa oppimiskäyrää ja vähentää myös kehitysprosessin läpinäkyvyyttä.
Tukituista puuttuu myös asianmukainen dokumentaatio, ja monien sen osien osalta käyttäjät eivät voi saada asianmukaisia verkkoresursseja apua varten.
32. Mitä hyötyä resourcebundle.properties-tiedostosta on Struts Validation -kehyksessä?
resourcebundle.properties-tiedostoa käytetään määrittämään erityisiä virheilmoituksia avainarvopareissa koodissa mahdollisesti ilmeneville mahdollisille virheille.
Tämä lähestymistapa auttaa pitämään koodin puhtaana, koska kehittäjän ei tarvitse upottaa kaikkia virheilmoituksia koodiin.
33. Voinko saada html lomakeominaisuus ilman niihin liittyviä getteri- ja setteriformbean-menetelmiä?
Jokaiselle html-lomakeomaisuudelle on määritettävä getter- ja setter-menetelmät formbeanissa, muuten sovellus aiheuttaa virheen.
34. Kuinka monta servlet-ohjainta käytetään Struts-sovelluksessa?
Struts-kehys toimii keskitetyn ohjauksen käsitteen pohjalta ja koko sovellusta ohjaa yksi servlet-ohjain. Siksi tarvitsemme vain yhden servlet-ohjaimen servlet-sovelluksessa.
35. Voiko yhdelle Struts-sovellukselle olla useita struts-config.xml-tiedostoja?
Meillä voi olla mikä tahansa määrä Struts-config.xml-tiedostoja yhtä sovellusta varten.
Tarvitsemme tätä varten seuraavat kokoonpanot:
<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. Mitä mallikomponentteja Struts tukee?
Tuet tukevat kaikentyyppisiä malleja, mukaan lukien Java beans, EJB, CORBA. Strutsilla ei kuitenkaan ole sisäänrakennettua tukea millekään tietylle mallille, ja kehittäjä voi valita minkä tahansa mallin.
37. Milloin on hyödyllistä käyttää IncludeActionia?
IncludeAction on Strutsin tarjoama toimintaluokka, joka on hyödyllinen, kun Strutsin ja Servlet-pohjaisen sovelluksen välillä tarvitaan integrointi.
38. Onko Struts-kierre turvallinen?
Kyllä Tuet ovat lankaturvallisia. Strutsissa uutta servlet-objektia ei tarvita jokaisen pyynnön käsittelemiseen; pikemminkin jokaisessa uudessa pyynnössä käytetään uutta toimintaluokan objektin säiettä.
39. Mitä konfiguraatiomuutoksia tarvitaan resurssitiedostojen käyttämiseen Strutsissa?
Resurssitiedostoja (.properties-tiedostoja) voidaan käyttää Strutsissa lisäämällä seuraava määritysmerkintä struts-config.xml-tiedostoon:
<message-resources parameter="com.login.struts.ApplicationResources"/>
40. Kuinka sisäkkäisiä papuja voidaan käyttää Struts-sovelluksissa?
Struts tarjoaa tähän tarkoitukseen erillisen tagikirjaston (Nested Tag Library). Tämän kirjaston avulla voimme sijoittaa pavut mihin tahansa Struts-pohjaiseen sovellukseen.
41. Mitkä ovat Struts Frameworkin ydinluokat?
Seuraavat ovat Struts Frameworkin tarjoamat ydinluokat:
- Toimintaluokka
- ActionForm-luokka
- ActionMapping-luokka
- ActionForward-luokka
- ActionServlet-luokka
42. Voimmeko käsitellä poikkeuksia Strutsissa ohjelmallisesti?
Kyllä, voimme käsitellä poikkeuksia Strutsissa ohjelmallisesti käyttämällä koodissa try, catch -lohkoja.
try { // Struts code } Catch (Exception e) { // exception handling code }
43. Onko Struts Framework osa J2EE?
Vaikka Struts-kehys perustuu J2EE-tekniikoihin, kuten JSP, Java Beans, Servlets jne., mutta se ei ole osa J2EE-standardeja.
44. Miten toimintojen kartoitus konfiguroidaan Strutsissa?
Toimintojen määritykset määritetään määritystiedostossa struts-config.xml -tunnisteen alla seuraavasti:
<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. Milloin Struts Framework kannattaa valita?
Tukia tulee käyttää, kun jokin tai osa seuraavista ehdoista toteutuu:
- Tarvitaan erittäin vankka yritystason sovelluskehitys.
- Tarvitaan uudelleenkäytettävä, hyvin konfiguroitava sovellus.
- Tarvitaan löyhästi kytketty, MVC-pohjainen sovellus, jossa eri kerrokset erotetaan selkeästi.
46. Miksi ActionServlet on singleton Strutsissa?
Struts-kehyksessä actionServlet toimii ohjaimena ja tämä ohjain hallitsee kaikkia käyttäjien tekemiä pyyntöjä. ActionServlet perustuu yksittäiseen suunnittelukuvioon, koska vain yksi objekti tarvitsee luoda tälle ohjainluokalle. Useita säikeitä luodaan myöhemmin jokaiselle käyttäjäpyynnölle.
47. Mitä vaiheita tarvitaan validointikehyksen asettamiseen Strutsissa?
Seuraavat vaiheet vaaditaan validointikehyksen asentamiseen Strutsissa: – Väärä kirjoitusasu
- Sijoita WEB-INF-hakemistoon valdator-rules.xml ja validation.xml tiedostot.
- Ota vahvistuslaajennus käyttöön struts-config.xml-tiedostoissa lisäämällä seuraava:
<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. Mitä teknologioita voidaan käyttää Strutsin View Layerissa?
Strutsissa voimme käyttää mitä tahansa seuraavista tekniikoista näkymäkerroksessa:
- JSP
- HTML
- XML/XSLT
- WML-tiedostot
- Velocity-mallit
- Servletit
49. Mitkä ovat edellytykset toimiakseen oikein?
ActionFormin on täytettävä seuraavat ehdot toimiakseen oikein:
- Sillä täytyy olla no argumentti -konstruktio.
- Sillä pitäisi olla julkiset getter- ja setter-menetelmät kaikille sen ominaisuuksille.
50. Minkä kirjaston Struts tarjoaa lomakeelementeille, kuten valintaruuduille, tekstilaatikoille jne?
Struts tarjoaa HTML Tags -kirjaston, jota voidaan käyttää lomakeelementtien, kuten tekstikenttien, tekstilaatikoiden, valintanappien jne., lisäämiseen.
Nämä haastattelukysymykset auttavat myös vivassasi (suullinen)
Kiitos paljon herra, mahtavaa ;):) pdf-latauslinkki ei toimi. Kiitos
Virhe korjattu! Kiitos raportoinnista
Kiitos herra :):)