Struts vs Struts2
Struts (также известный как Apache Struts или Struts 1) - это кроссплатформенная платформа с открытым исходным кодом, написанная на Java, предназначенная для разработки веб-приложений Java EE. Это была одна из начальных структур веб-приложений Java EE. Но несколько лет спустя появился Struts2 (или Struts версии 2), и это была совершенно другая и значительно улучшенная среда веб-приложений. В нем было рассмотрено несколько вопросов, которые были восприняты как недостатки в первоначальной версии. В настоящее время Struts2 очень активно используется для разработки приложений Java EE в мире..
Что такое Struts?
Структура Struts (Struts 1) была одной из начальных структур веб-приложений для разработки веб-приложений Java EE. Структура Struts поощряет использование архитектуры MVC (Model-View-Controller). Это расширение Java Servlet API. Крейг МакКланахан - первоначальный создатель Struts. Первоначально он был известен как Jakaratha Struts и поддерживался в рамках Джакартского проекта Apache Software Foundation. Он выпущен под лицензией Apache 2.0. Структура Struts называется структурой, основанной на запросах, и состоит из трех основных компонентов: обработчика запросов, обработчика ответа и библиотеки тегов. Стандартный URI (универсальный идентификатор ресурса) сопоставляется с обработчиком запросов. Обработчик ответа отвечает за передачу управления. Для создания интерактивных приложений с формами могут использоваться функции, предлагаемые библиотекой тегов. Struts поддерживает приложения REST и различные технологии, такие как SOAP, AJAX и т. Д..
Что такое Struts2?
В то время считалось, что среда Struts содержит определенные ограничения (главным образом, отсутствие разделения между уровнем представления, уровнем обработки запросов и моделью) разработчиками Java EE, и, следовательно, через несколько лет появился Struts2. На самом деле Struts2 полностью отличался от Struts. Фактически, они даже не использовали одну и ту же кодовую базу, потому что Struts2 был просто результатом переименования инфраструктуры WebWork 2.2 (то есть сообщества WebWork и Struts, которые работали отдельно в течение некоторого времени, в конечном итоге взялись за руки, чтобы создать Struts2). Текущий стабильный выпуск - версия 2.2.3, выпущенная в мае 2011 года..
В чем разница между Struts и Struts2?
Одной из многих проблем инфраструктуры Struts была необходимость программирования абстрактных классов вместо интерфейсов. Это было решено структурой Struts2. Например, инфраструктура Struts требовала, чтобы классы Action были расширены из абстрактных базовых классов, но Struts2 Actions может реализовывать интерфейс Action. Из-за различий в модели потоков между двумя версиями проблемы безопасности потоков, возникшие в инфраструктуре Struts в отношении объектов Action, не возникают в инфраструктуре Struts2. Причина в том, что объекты Action Struts2 создаются для каждого запроса, в то время как инфраструктура Action in Struts имеет только один экземпляр для обработки всех запросов этого действия. В отличие от среды действий в Struts, действия Struts2 не зависят от API сервлета.
Тестируемость инфраструктуры Struts2 сравнительно выше, чем инфраструктуры Struts. Вы можете протестировать Действия Struts2, просто выполнив три шага: создание экземпляров, установка свойств и вызов методов. Сбор входных данных проще в среде Struts2, поскольку свойства Action используются в качестве входных свойств без необходимости сохранять второй входной объект. Помимо поддержки интеграции JSTL (которая присутствует в Struts), среда Struts2 может использовать более мощный и выразительный OGNL (язык обозначений объектных графиков). Для преобразования типов Strut и Strut2 используют Commons-Beanutils и OGNL соответственно. Благодаря этим улучшениям инфраструктура Struts2 считается очень зрелой платформой и очень популярна среди программистов на Java EE. С другой стороны, структура Struts теперь считается устаревшей.