50 найкращих питань та відповідей на інтерв’ю Struts (2025)

Ось питання та відповіді на співбесіді Struts для новачків, а також для досвідчених кандидатів, щоб отримати роботу своєї мрії.


1. З яких компонентів складається Struts Framework?

Структура Struts складається з таких компонентів:

  1. Сервлети Java
  2. JSP (Сторінки сервера Java)
  3. Спеціальні теги
  4. Ресурси повідомлень

Безкоштовне завантаження у форматі PDF: Struts Interview Questions and Answers


2. Яка роль обробника в програмах на основі MVC?

Роботою обробників є передача запитів до відповідних моделей, оскільки вони прив’язані до рівня моделі архітектури MVC. Обробники використовують інформацію зіставлення з конфігураційних файлів для передачі запиту.


3. Який потік запитів у програмах на основі Struts?

Додатки на основі Struts використовують шаблон проектування MVC. Потік запитів такий:

  • Користувач взаємодіє з View, натискаючи будь-яке посилання або надсилаючи будь-яку форму.
  • Після взаємодії користувача запит передається до контролера.
  • Контролер відповідає за передачу запиту на відповідні дії.
  • Дія відповідає за виклик функції в моделі, яка має всю бізнес-логіку.
  • Відповідь від шару моделі отримується назад дією, яка потім передає її до перегляду, де користувач може побачити відповідь.

4. Який файл використовується контролером для отримання інформації про відображення для маршрутизації запитів?

Контролер використовує файл конфігурації “struts-config.XML файл, щоб отримати всю інформацію про відображення, щоб вирішити, яку дію використовувати для маршрутизації запиту користувача.


5. Яка роль Action Class у Struts?

У Struts Action Class діє як контролер і виконує наступні ключові завдання:

  • Після отримання запиту користувача він обробляє запит користувача.
  • Використовує відповідну модель і отримує дані з моделі (за потреби).
  • Вибирає правильний вигляд, щоб показати відповідь користувачеві.
Запитання для співбесіди Struts
Запитання для співбесіди Struts

6. Як створюється bean-компонент actionForm?

Сурогат

Компонент actionForm створюється шляхом розширення класу 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. Які два типи перевірок підтримуються Validator FrameWork?

Validator Framework використовується для перевірки даних форми. Цей фреймворк забезпечує два типи перевірок:

  1. Перевірка на стороні клієнта в браузері користувача
  2. Серверна перевірка

8. Які етапи встановлення стійок?

Щоб використовувати структуру Struts, нам потрібно лише додати файл Struts.Jar у наше середовище розробки. Коли файл jar стане доступним у CLASSPATH, ми зможемо використовувати фреймворк і розробляти програми на основі Strut.

Запитання для співбесіди Struts
Запитання для співбесіди Struts

9. Як увімкнути перевірку на стороні клієнта у формі JSP?

Щоб увімкнути валідацію на стороні клієнта в Struts, спочатку нам потрібно ввімкнути плагін валідатора у файлі struts-config.xml. Це робиться шляхом додавання таких записів конфігурації в цей файл:

<!--  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>

Потім правила перевірки визначаються у файлі validation.xml. Якщо форма містить поле електронної пошти, і ми хочемо ввімкнути перевірку на стороні клієнта для цього поля, у файл validation.xml додається такий код:

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

10. Як тег зіставлення дій використовується для пересилання запитів у файлі конфігурації Struts?

У файлі конфігурації Struts (struts-config.xml) параметри пересилання визначено в тегу зіставлення дій.

У наступному прикладі, коли користувач клацне гіперпосилання test.do, запит буде надіслано /pages/testing.jsp використовуючи такі конфігурації з файлу struts-config.xml:

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

Це перенаправлення відбудеться, коли користувач клацне таке гіперпосилання на сторінці jsp:

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

11. Як у Struts можна контролювати надсилання повторних форм?

У Struts клас дії надає два важливі методи, які можна використовувати, щоб уникнути повторного надсилання форм.

Метод класу дій saveToken() генерує унікальний маркер і зберігає його в сеансі користувача. Потім використовується метод isTokenValid() для перевірки унікальності токенів.


12. Як у Struts отримати доступ до компонентів Java та їх властивостей?

Бібліотека тегів Bean — це бібліотека Struts, яку можна використовувати для доступу до Java-компонентів.


13. Який файл конфігурації використовується для зберігання інформації про конфігурацію JSP у Struts?

Для деталей конфігурації JSP використовується файл Web.xml.


14. Яке призначення методу Execute класу дій?

Метод виконання класу дій відповідає за виконання бізнес-логіки. Якщо за запитом користувача потрібна якась обробка, вона виконується цим методом. Цей метод повертає об’єкт actionForward, який спрямовує програму на відповідну сторінку.

У наступному прикладі метод execute поверне об’єкт actionForward, визначений у struts-config.xml з назвою «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. Яка різниця між файлами validation.xml і validator-rules.xml у середовищі перевірки Struts?

У Validation.xml ми визначаємо правила перевірки для будь-якого конкретного компонента Java, тоді як у файлі validator-rules.xml визначені стандартні та загальні правила перевірки.


16. Як ми можемо відобразити всі помилки підтвердження для користувача на сторінці JSP?

Щоб відобразити всі помилки перевірки на основі правил перевірки, визначених у файлі validation.xml, ми використовуємо у нашому файлі JSP.


17. Що таке декларативна обробка винятків у Struts?

Якщо логіка обробки винятків визначена в struts-config.xml або в тегу дії, це називається декларативною обробкою винятків у Struts.

У наступному прикладі ми визначили винятки у файлі struts-config.xml для NullPointerException:

<global-exceptions>

<exception key="test.key"

Type="java.lang.NullPointerException"

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

</global-exceptions>

18. Що таке DynaActionForm?

DynaActionForm — це особливий тип класу actionForm (підклас класу ActionForm), який використовується для динамічного створення компонентів форми. Він використовує конфігураційні файли для створення bean форми.


19. Які зміни конфігурації потрібні для використання Tiles у Struts?

Щоб створити повторно використовувані компоненти за допомогою Tiles framework, нам потрібно додати наступний код визначення плагіна у файл 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. Яка різниця між Jakarta Struts і Apache Struts? Який з них краще використовувати?

Обидва однакові, і між ними немає різниці.


21. Для чого корисний файл конфігурації Struts.xml?

Файл Struts.xml є одним із ключових файлів конфігурації Struts framework, який використовується для визначення зіставлення між URL-адресою та дією. Коли контролер отримує запит користувача, контролер використовує інформацію про відображення з цього файлу, щоб вибрати відповідний клас дій.


22. Як бібліотеки тегів визначені в Struts?

Бібліотеки тегів визначені у файлі конфігурації (web.xml). позначити наступним чином:

<taglib>

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

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

</taglib>

23. Яке значення логічних тегів у Struts?

Використання логічних тегів у Struts допомагає писати чистий і ефективний код на рівні представлення без використання скриптів.


24. Які є два типи області видимості для компонентів форми?

  • Обсяг запиту: Значення Formbean доступні лише в поточному запиті
  • Обсяг сеансу: Значення Formbean доступні для всіх запитів у поточному сеансі.

25. Як ми можемо згрупувати пов’язані дії в одній групі в Struts?

Щоб згрупувати кілька пов’язаних дій в одній групі, ми можемо використовувати клас DispatcherAction.


26. Коли слід використовувати SwtichAction?

Найкращий сценарій використання класу SwitchAction — це модульна програма з кількома модулями, що працюють окремо. Використовуючи клас SwitchAction, ми можемо переключатися з ресурсу в одному модулі на інший ресурс в іншому модулі програми.


27. Які переваги фреймворку Struts?

Struts базується на MVC, тому в Struts є хороший розподіл різних рівнів, що спрощує розробку та налаштування програм Struts. Використання різних конфігураційних файлів робить програми Struts легко конфігурованими. Крім того, Struts є відкритим кодом і, отже, економічно ефективним.


28. Які кроки необхідні для міграції програми з Struts1 на Struts2?

Для міграції Struts1 до Struts2 необхідні такі кроки:

  1. Перемістіть Struts1 actionForm до Struts2 POJO.
  2. Перетворення файлу конфігурації Struts1 (struts-config.xml) у файл конфігурації Struts2 (struts.xml)

29. Як перевіряються властивості форми в Struts?

Для перевірки заповнених властивостей використовується метод validate() класу ActionForm перед обробкою елемента керування formbean для класу Action.


30. Яке використання методу reset класу ActionForm?

Метод reset класу actionForm використовується для очищення значень форми перед ініціюванням нового запиту.


31. Які недоліки Struts?

Незважаючи на те, що Struts має велику кількість пов’язаних переваг, він також вимагає більшої тривалості навчання, а також зменшує прозорість у процесі розробки.

Struts також не має належної документації, і для багатьох його компонентів користувачі не можуть отримати відповідні онлайн-ресурси для допомоги.


32. Яке використання файлу resourcebundle.properties у середовищі перевірки Struts?

Файл resourcebundle.properties використовується для визначення конкретних повідомлень про помилки в парах ключ-значення для будь-яких можливих помилок, які можуть виникнути в коді.

Такий підхід допомагає зберегти код чистим, оскільки розробнику не потрібно вбудовувати всі повідомлення про помилки в код.


33. Можна мені HTML властивість форми без пов’язаних методів getter і setter formbean?

Для кожної властивості форми html необхідно визначити методи getter і setter у formbean, інакше програма призведе до помилки.


34. Скільки контролерів сервлетів використовується в додатку Struts?

Структура Struts працює на основі концепції централізованого керування, і вся програма контролюється одним контролером сервлетів. Отже, нам потрібен лише один контролер сервлетів у програмі сервлетів.


35. Чи можемо ми мати кілька файлів struts-config.xml для однієї програми Struts?

Ми можемо мати будь-яку кількість файлів Struts-config.xml для однієї програми.

Для цього нам потрібні такі конфігурації:

<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. Які компоненти моделі підтримуються Struts?

Struts підтримує всі типи моделей, включаючи Java beans, EJB, CORBA. Проте Struts не має вбудованої підтримки для будь-якої конкретної моделі, і розробник вибирає будь-яку модель.


37. Коли корисно використовувати IncludeAction?

IncludeAction — це клас дій, наданий Struts, який корисний, коли потрібна інтеграція між Struts і програмою на основі Servlet.


38. Чи безпечний поток Struts?

Так Struts безпечні для потоків. У Struts новий об’єкт сервлету не потрібен для обробки кожного запиту; для кожного нового запиту використовується новий потік об’єкта класу дії.


39. Які зміни конфігурації потрібні для використання файлів ресурсів у Struts?

Файли ресурсів (файли .properties) можна використовувати в Struts, додавши такий запис конфігурації у файл struts-config.xml:

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

40. Як вкладені bean-компоненти можна використовувати в програмах Struts?

Для цієї мети Struts надає окрему бібліотеку тегів (бібліотеку вкладених тегів). Використовуючи цю бібліотеку, ми можемо вкладати компоненти в будь-яку програму на основі Struts.


41. Які основні класи Struts Framework?

Нижче наведено основні класи, надані Struts Framework:

  • Клас дії
  • Клас ActionForm
  • Клас ActionMapping
  • Клас ActionForward
  • Клас ActionServlet

42. Чи можемо ми обробляти винятки в Struts програмно?

Так, ми можемо обробляти винятки в Struts програмно, використовуючи блоки try, catch у коді.

try {

// Struts code

}

Catch (Exception e) {

// exception handling code

}

43. Чи є Struts Framework частиною J2EE?

Хоча структура Struts базується на таких технологіях J2EE, як JSP, Java Beans, Servlets тощо, але вона не є частиною стандартів J2EE.


44. Як налаштовано відображення дій у Struts?

Зіставлення дій налаштовується у файлі конфігурації struts-config.xml під тегом наступним чином:

<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. Коли варто вибрати Struts Framework?

Розпірки слід використовувати, коли виконується будь-яка з наступних умов:

  • Потрібна розробка додатків на рівні підприємства.
  • Потрібна багаторазова програма з можливістю налаштування.
  • Потрібна слабозв’язана програма на основі MVC із чітким відокремленням різних рівнів.

46. ​​Чому ActionServlet є єдиним у Struts?

У структурі Struts actionServlet діє як контролер, і всі запити, зроблені користувачами, контролюються цим контролером. ActionServlet базується на шаблоні проектування одного елемента, оскільки для цього класу контролера потрібно створити лише один об’єкт. Пізніше для кожного запиту користувача створюється кілька потоків.


47. Які кроки необхідні для налаштування структури перевірки в Struts?

Щоб налаштувати структуру валідатора в Struts, необхідно виконати такі кроки: – Неправильне написання

  1. У каталозі WEB-INF розмістіть файли valdator-rules.xml і validation.xml.
  2. Увімкніть плагін перевірки у файлах struts-config.xml, додавши таке:
<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. Які технології можна використовувати на рівні перегляду в Struts?

У Struts ми можемо використовувати будь-яку з наступних технологій у шарі перегляду:

  • JSP
  • HTML
  • XML/XSLT
  • Файли WML
  • Шаблони швидкості
  • сервлети

49. Які умови для коректної роботи actionForm?

Для коректної роботи ActionForm має відповідати таким умовам:

  • Він повинен мати конструктор без аргументів.
  • Він повинен мати загальнодоступні методи отримання та встановлення для всіх своїх властивостей.

50. Яку бібліотеку надає Struts для таких елементів форми, як прапорці, текстові поля тощо?

Struts надає бібліотеку тегів HTML, яку можна використовувати для додавання елементів форми, таких як текстові поля, текстові поля, перемикачі тощо.


Ці запитання для співбесіди також допоможуть вам у життєдіяльності (усному)

Поділитись

3 Коментарі

  1. Аватара Смітха каже:

    Щиро дякую, сер, Чудово ;):) посилання для завантаження pdf не працює. Дякую

    1. Аватара Guru99 каже:

      Помилка виправлена! Дякуємо за повідомлення

залишити коментар

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *