Apache Struts

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.]


Програмне забезпечення Це незавершена стаття про програмне забезпечення.
Ви можете допомогти проєкту, виправивши або дописавши її.
  • п
  • о
  • р
Java
Платформи Java
Java · JVM · Micro Edition · Standard Edition · Enterprise Edition · Java Card
Технології 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/

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