Эта статья включает список общих ссылок , но в ней отсутствуют соответствующие встроенные цитаты . ( Апрель 2009 ) |
Оригинальный автор(ы) | Крейг МакКланахан |
---|---|
Разработчик(и) | Фонд программного обеспечения Apache |
Первоначальный выпуск | Май 2000 ( 2000-05 ) |
Окончательный релиз | 1.3.10 / 8 декабря 2008 г. ( 2008-12-08 ) |
Репозиторий |
|
Написано в | Ява |
Операционная система | Кроссплатформенный |
Платформа | Кроссплатформенность ( JVM ) |
Преемник | Apache Struts 2 |
Лицензия | Лицензия Apache 2.0 |
Веб-сайт | weblegacy.github.io/struts1/ |
Apache Struts 1 — это фреймворк веб-приложений с открытым исходным кодом для разработки веб-приложений Java EE . Он использует и расширяет API Java Servlet, чтобы побудить разработчиков принять архитектуру модель–представление–контроллер (MVC). Первоначально он был создан Крейгом МакКланаханом и передан в дар Apache Foundation в мае 2000 года. Ранее находившийся в Apache Jakarta Project и известный как Jakarta Struts , он стал проектом Apache верхнего уровня в 2005 году.
Фреймворк WebWork отделился от Apache Struts с целью предложить улучшения и усовершенствования, сохранив при этом общую архитектуру исходного фреймворка Struts. Однако в декабре 2005 года было объявлено, что Struts снова объединится с WebWork. WebWork 2.2 был принят как Apache Struts 2 , который достиг своего первого полного релиза в феврале 2007 года.
В дополнение к текущей и постоянно развивающейся версии-преемнице Struts 2, с 2022 года существует клон Struts 1, который обновляет устаревшую структуру Struts 1 до текущего стека, совместимого с Jakarta EE . [1]
В стандартном веб-приложении Java EE клиент обычно обращается к серверу через веб-форму . Затем информация либо передается сервлету Java , который взаимодействует с базой данных и выдает ответ в формате HTML , либо передается в документ JavaServer Pages (JSP), который смешивает код HTML и Java для достижения того же результата. Оба подхода часто считаются неподходящими для крупных проектов, поскольку они смешивают логику приложения с представлением и затрудняют обслуживание.
Цель Struts — отделить модель (логику приложения, взаимодействующую с базой данных) от представления (страниц HTML, представленных клиенту) и контроллера (экземпляра, который передает информацию между представлением и моделью). Struts предоставляет контроллер (сервлет, известный как ActionServlet
) и облегчает написание шаблонов для представления или уровня представления (обычно в JSP, но также поддерживаются XML / XSLT и Velocity ). Программист веб-приложения отвечает за написание кода модели и за создание центрального файла конфигурации struts-config.xml
, который связывает вместе модель, представление и контроллер.
Запросы от клиента отправляются контроллеру в форме «Действий», определенных в файле конфигурации; если контроллер получает такой запрос, он вызывает соответствующий класс Действия, который взаимодействует с кодом модели, специфичным для приложения. Код модели возвращает «ActionForward», строку, сообщающую контроллеру, какую страницу вывода отправить клиенту. Информация передается между моделью и представлением в форме специальных JavaBeans . Мощная библиотека пользовательских тегов позволяет ему из уровня представления читать и записывать содержимое этих bean-компонентов без необходимости использования какого-либо встроенного кода Java.
Struts классифицируется как фреймворк веб-приложений на основе запросов Модели 2. [2]
Struts также поддерживает интернационализацию с помощью веб-форм и включает механизм шаблонов под названием «Плитки», который (например) позволяет составлять слой представления из независимых компонентов верхнего и нижнего колонтитула, навигации по меню и содержимого.