50 лучших вопросов и ответов на интервью Struts (2025 г.)
Вот вопросы и ответы на собеседовании Struts для новичков, а также для опытных кандидатов, желающих получить работу своей мечты.
1. Каковы компоненты Struts Framework?
Структура Struts состоит из следующих компонентов:
- Сервлеты Java
- JSP (страницы Java-сервера)
- Пользовательские теги
- Ресурсы сообщений
Бесплатная загрузка в формате PDF: Вопросы и ответы для интервью со Struts
2. Какова роль обработчика в приложениях на основе MVC?
Задача обработчиков — передавать запросы соответствующим моделям, поскольку они привязаны к уровню модели архитектуры MVC. Обработчики используют информацию о сопоставлении из файлов конфигурации для передачи запроса.
3. Каков поток запросов в приложениях на базе Struts?
Приложения на основе Struts используют шаблон проектирования MVC. Поток запросов следующий:
- Пользователь взаимодействует с View, щелкая любую ссылку или отправляя любую форму.
- При взаимодействии пользователя запрос передается контроллеру.
- Контроллер отвечает за передачу запроса на соответствующее действие.
- Действие отвечает за вызов функции в модели, в которой реализована вся бизнес-логика.
- Ответ от уровня модели возвращается действию, которое затем передает его в представление, где пользователь может увидеть ответ.
4. Какой файл используется контроллером для получения информации о сопоставлении для маршрутизации запросов?
Контроллер использует файл конфигурации «struts-config.XML файл, чтобы получить всю информацию о сопоставлении, чтобы решить, какое действие использовать для маршрутизации запроса пользователя.
5. Какова роль класса действий в Struts?
В Struts класс действий действует как контроллер и выполняет следующие ключевые задачи:
- После получения запроса пользователя он обрабатывает запрос пользователя.
- Использует соответствующую модель и извлекает данные из модели (при необходимости).
- Выбирает правильный вид для отображения ответа пользователю.
6. Как создается компонент 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 используется для проверки данных формы. Эта платформа обеспечивает два типа проверок:
- Проверка на стороне клиента в браузере пользователя
- Проверка на стороне сервера
8. Каковы этапы установки стоек?
Чтобы использовать платформу Struts, нам нужно всего лишь добавить файл Struts.Jar в нашу среду разработки. Как только файл jar станет доступен в CLASSPATH, мы сможем использовать платформу и разрабатывать приложения на основе Strut.
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) параметры пересылки определяются в теге action-mapping.
В следующем примере, когда пользователь нажмет на гиперссылку 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 класса действия?
Метод Execute класса действия отвечает за выполнение бизнес-логики. Если по запросу пользователя требуется какая-либо обработка, она выполняется в этом методе. Этот метод возвращает объект actionForward, который направляет приложение на соответствующую страницу.
В следующем примере метод выполнения вернет объект 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?
В 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), который используется для динамического создания компонентов формы. Он использует файлы конфигурации для создания компонентов формы.
19. Какие изменения конфигурации необходимы для использования Tiles в Struts?
Чтобы создать повторно используемые компоненты с помощью платформы Tiles, нам нужно добавить следующий код определения плагина в файл 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, который используется для определения сопоставления между 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. Каковы два типа области видимости для formbeans?
- Объем запроса: Значения Formbean доступны только в текущем запросе.
- Объем сеанса: Значения Formbean доступны для всех запросов в текущем сеансе.
25. Как сгруппировать связанные действия в одну группу в Struts?
Чтобы сгруппировать несколько связанных действий в одну группу, мы можем использовать класс DispatcherAction.
26. Когда следует использовать SwtichAction?
Лучший сценарий использования класса SwitchAction — это когда у нас есть модульное приложение с несколькими модулями, работающими отдельно. Используя класс SwitchAction, мы можем переключаться с ресурса в одном модуле на другой ресурс в другом модуле приложения.
27. Каковы преимущества платформы Struts?
Struts основан на MVC, поэтому в Struts имеется хорошее разделение различных уровней, что упрощает разработку и настройку приложений Struts. Использование различных файлов конфигурации упрощает настройку приложений Struts. Кроме того, Struts имеет открытый исходный код и, следовательно, экономически эффективен.
28. Какие действия необходимо выполнить для миграции приложения со Struts1 на Struts2?
Для миграции Struts1 на Struts2 необходимы следующие шаги:
- Переместите форму действия Struts1 в POJO Struts2.
- Преобразование файла конфигурации Struts1 (struts-config.xml) в файл конфигурации Struts2 (struts.xml)
29. Как в Struts проверяются свойства формы?
Для проверки заполненных свойств метод validate() класса ActionForm используется перед обработкой элемента управления formbean в классе Action.
30. Для чего нужен метод сброса класса ActionForm?
Метод сброса класса actionForm используется для очистки значений формы перед инициированием нового запроса.
31. Каковы недостатки Struts?
Хотя Struts имеет большое количество преимуществ, он также требует более длительного обучения, а также снижает прозрачность процесса разработки.
У Struts также отсутствует надлежащая документация, и по многим ее компонентам пользователи не могут получить необходимые онлайн-ресурсы для помощи.
32. Какая польза от файла resourcesbundle.properties в среде проверки Struts?
Файл resourcesbundle.properties используется для определения конкретных сообщений об ошибках в парах ключ-значение для любых возможных ошибок, которые могут возникнуть в коде.
Такой подход помогает поддерживать чистоту кода, поскольку разработчику не нужно встраивать все сообщения об ошибках в код.
33. Можно мне HTML Свойство формы без связанных методов получения и установки формы?
Для каждого свойства формы HTML необходимо определить методы получения и установки в компоненте формы, иначе приложение приведет к ошибке.
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 и приложением на основе сервлетов.
38. Безопасен ли поток Struts?
Да, Struts потокобезопасны. В Struts для обработки каждого запроса не требуется новый объект сервлета; скорее, для каждого нового запроса используется новый поток объекта класса действия.
39. Какие изменения конфигурации необходимы для использования файлов ресурсов в Struts?
Файлы ресурсов (файлы .properties) можно использовать в Struts, добавив следующую запись конфигурации в файл struts-config.xml:
<message-resources parameter="com.login.struts.ApplicationResources"/>
40. Как вложенные компоненты можно использовать в приложениях Struts?
Для этой цели Struts предоставляет отдельную библиотеку тегов (вложенную библиотеку тегов). Используя эту библиотеку, мы можем вложить bean-компоненты в любое приложение на основе 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, сервлеты и т. д., она не является частью стандартов 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 основан на шаблоне проектирования Singleton, поскольку для этого класса контроллера необходимо создать только один объект. Несколько потоков создаются позже для каждого запроса пользователя.
47. Какие шаги необходимы для настройки структуры валидатора в Struts?
Для настройки структуры валидатора в Struts необходимы следующие шаги: – Неправильное написание
- В каталоге WEB-INF поместите файлы valdator-rules.xml и validation.xml.
- Включите плагин проверки в файлах 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-тегов, которую можно использовать для добавления элементов формы, таких как текстовые поля, текстовые поля, переключатели и т. д.
Эти вопросы для собеседования также помогут вам в устной речи.
Огромное спасибо, сэр, потрясающе ;):) ссылка на скачивание в формате PDF не работает. Спасибо.
Ошибка исправлена! Спасибо за отчет
Спасибо, сэр :):)