Apache Struts

Apache Struts
Тип фреймворк
Розробник Apache Software Foundation
Стабільний випуск 6.4.0 (19 квітня 2024; 17 днів тому (2024-04-19))
Платформа віртуальна машина Java
Операційна система багатоплатформний
Мова програмування Java
Ліцензія Apache License 2.0
Вебсайт struts.apache.org

Apache Struts — вебфреймворк з відкритим кодом для розробки Java EE вебзастосунків. Використовує і розширює Java Servlet API, надаючи архітектуру MVC (Модель-Вид-Контролер). Struts 1 створений Крейгом МакКланаханом і спонсорований в травні 2000 року Apache Software Foundation. Раніше знаходився у складі Apache Jakarta Project і був відомий як Jakarta Struts. У 2005 році він став проєктом Apache вищого рівня.

Struts був одним із перших вебфреймворків для Java і став одним із найпопулярніших і найвідоміших. Проте його архітектура мала ряд недоліків, а проєкт довгий час не розвивався, тому Struts 2 було створено на базі зовсім іншого фреймворка — Webwork. Команди Webwork і Struts об'єднали свої проєкти у Struts 2, узявши реалізацію Webwork і відому у корпоративному середовищі назву Struts.

Призначення та структура

У звичайному Java EE вебзастосунку клієнт, як правило, відправляє інформацію на сервер з форми. Потім інформація передається сервлету (або JSP сторінці), який обробляє її, виконує взаємодію з базою даних і формує HTML відповідь.

Struts був створений для того, щоб чітко відділяти модель (бізнес-логіку) від представлення (логіки відображення, у нашому випадку це JSP, хоча підтримуються і XML/XSLT і Velocity), і контролера (сутності, яка займається передачею інформації від моделі до представлення).

В склад Struts входить контролер — сервлет під іменем ActionServlet і різні утиліти, які полегшують створення сторінок представлення. Розробник вебдодатку відповідає за написання коду моделі і створення центрального конфігураційного файлу struts-config.xml, який зв'язує модель, представлення і контролер. Запит від клієнта передається контролером у вигляді «Actions» (дій), визначених в конфігураційному файлі. Якщо контролер отримує такий запит, він передає його відповідному Action класу, який запускає специфічний для цього додатку код моделі і повертає «ActionForward», стрічку, яка вказує контролеру, яку сторінку потрібно відправити клієнту.

Інформація передається між моделлю і представленням у вигляді особливих JavaBeans. Багата бібліотека тегів дозволяє виводити і записувати вміст цих бінів на презентаційному рівні без включення Java коду.

Struts також підтримує i18n (інтернаціоналізацію), полегшує перевірку даних присланих з вебформи і надає механізм створення шаблонів під назвою «Tiles», який дозволяє наслідувати вебсторінки.

Примітки

Посилання

  • Сайт struts [Архівовано 24 травня 2009 у Wayback Machine.]


Програмне забезпечення Це незавершена стаття про програмне забезпечення.
Ви можете допомогти проєкту, виправивши або дописавши її.
Ця стаття потребує додаткових посилань на джерела для поліпшення її перевірності. Будь ласка, допоможіть удосконалити цю статтю, додавши посилання на надійні (авторитетні) джерела. Зверніться на сторінку обговорення за поясненнями та допоможіть виправити недоліки.
Матеріал без джерел може бути піддано сумніву та вилучено.
(жовтень 2017)
  • п
  • о
  • р
Платформи Java
Технології Sun
Squawk · Java Development Kit · OpenJDK · JavaFX
Основні технології Java
Основні сторонні технології
JRockit · GNU Classpath · Kaffe · TopLink · Apache Harmony · Apache Struts · Spring framework · Hibernate · JBoss application server · Tapestry · Jazelle
Історія
Мови програмування JVM
BeanShell · Clojure · Groovy · Java Tcl · JRuby · Jython · Processing · Rhino · Scala · більше…
Java конференції
JavaOne
  • п
  • о
  • р
Основні проєкти
ActiveMQ · Airflow  · Ant · Apache HTTP Server · APR · Apache Beam[en]  · Bloodhound  · Buildr · Camel · Cassandra · Cayenne · Chemistry  · CloudStack  · Cocoon · Commons · Cordova  · CouchDB · CXF · Deltacloud · Derby  · Directory · Excalibur · Felix · Flex  · Forrest · Geronimo · Gump · Hadoop · iBATIS  · Isis  · Jackrabbit · James · Lenya · Lucene · Maven · mod_perl · MyFaces · OFBiz  · OpenEJB · OpenJPA · OpenNLP  · OpenOffice · POI · Qpid · Rave · Roller · Sling · SpamAssassin  · Spark  · Sqoop · Stratos  · Struts  · Subversion  · Tapestry  · Tika · Tomcat · Traffic Server · Tuscany · Velocity · Wicket · XMLBeans[en]
Інші проєкти
Jakarta Project · Apache XML · Apache Incubator
Підпроєкти
BCEL · BSF · Cactus · Chainsaw · HBase · JMeter · Xerces · Batik · FOP · Log4j · XAP · River · ServiceMix · Log4Net · Abdera · Ivy · ODE · JSPWiki · Wink · Solr
Інкубатор
MXNet  · OpenMeetings  · Superset
Колишні проєкти (Attic)
Beehive · Harmony · HiveMind · Slide · Shale  · Wave
Ліцензія: Apache License · Сайт: http://apache.org/

П:  Портал «Програмування» П:  Портал «Інформаційні технології»