Struts жана Spring MVC
Struts алкагы Java EE веб тиркемелерин иштеп чыгуу үчүн баштапкы веб-тиркеме алкактарынын бири. Жаз - бул ачык булактуу колдонмо негизи. Жаз алкагы киргизилгенден бир нече убакыт өткөндөн кийин, иштеп чыгуучулар Strutsта кабыл алган кээ бир чектөөлөрдү чечүүгө үмүттөнүп, Spring алкагына MVC алкагын кошушту. Бирок бир нече жыл өткөндөн кийин, Struts2 (же Struts 2-версиясы) келди жана ал такыр башкача жана абдан жакшыртылган веб-тиркеме негизи болду. Азыр, Struts жана Spring MVC экөө тең дүйнөдө Java EE колдонмолорун иштеп чыгуу үчүн абдан көп колдонулууда.
Struts деген эмне?
Struts (ошондой эле Apache Struts деп аталат) Java EE веб тиркемелерин иштеп чыгуу үчүн арналган Java тилинде жазылган кайчылаш платформа ачык булак алкагы. Struts MVC (Model-View-Controller) архитектурасын колдонууга үндөйт. Бул Java Servlet API кеңейтүүсү. Крейг МакКланахан Strutsтун түпнуска жаратуучусу. Башында ал Джакарата Струтс катары белгилүү болгон жана Apache Software Foundation Жакарта Долбоорунун алкагында сакталган. Анын учурдагы туруктуу версиясы 2011-жылдын май айында чыккан 2.2.3 версиясы. Ал Apache License 2.0 астында чыгарылган. Struts алкактары суроо-талапка негизделген алкак деп аталат жана ал үч негизги компоненттен турат: суроону иштетүүчү, жооп иштетүүчү жана тег китепканасы. Стандарттык URI (Бирдиктүү ресурс идентификатору) суроо-талаптарды иштетүүчүгө окшоштурулган. Жооп иштетүүчү башкарууну өткөрүп берүү үчүн жооптуу. Формалар менен интерактивдүү тиркемелерди түзүү үчүн тег китепканасы сунуш кылган функцияларды колдонсо болот. Struts REST тиркемелерин жана SOAP, AJAX ж.б.
Жазгы MVC деген эмне?
Spring – бул ачык булак колдонмо алкагы. Бул Род Джонсон тарабынан иштелип чыккан жана биринчи версиясы 2004-жылы чыккан. Жазгы 3.0.5 Жаз алкагынын учурдагы версиясы. Ал Apache 2.0 лицензиясы боюнча лицензияланган. Каалаган Java тиркемеси Spring алкагындагы негизги функцияларды колдоно алат. Spring алкагында бир нече модулдар бар жана MVC алардын бири. Жазгы MVC алкагы алардын баштапкы планынын бир бөлүгү болгон эмес. Чынында, Spring иштеп чыгуучулары өздөрүнүн MVC алкактарын ойлоп тапканынын себеби, алар Struts (1-версия) жана башка ушул сыяктуу алкактарда кемчиликтер катары көрсөткөн чечимдерди камсыз кылуу болгон. Атап айтканда, алар презентация катмарынын, суроо-талаптарды иштетүү катмарынын жана моделдин ортосундагы бөлүнүүнүн жоктугун чечүүнү каалашканын айтышты. Spring MVC ошондой эле суроо-талапка негизделген веб-колдонмо алкагы.
Struts менен Spring MVC ортосунда кандай айырма бар?
Spring MVC жана Struts Java EE веб тиркемелерин иштеп чыгуу үчүн колдонулган эки популярдуу веб тиркеме алкактары болгону менен, алардын айырмачылыктары бар. Чындыгында, Spring MVC Strutsдагы бир нече чектөөлөрдү чечүү үчүн иштелип чыккан (1-версия). Бирок Struts2 1-версияга караганда абдан жакшыртылган алкак (алар бир эле код базасын бөлүшпөйт), ошондуктан Spring MVC менен Structs2 абдан окшош.
Spring MVCтин негизги артыкчылыктарынын бири – JSP/JSTL, Tiles, FreeMaker, Excel, PDF жана JSON сыяктуу көптөгөн көрүү параметрлери менен үзгүлтүксүз интеграцияга ээ болуу. Бирок, Strutsтан айырмаланып, Spring MVC камтылган AJAX колдоосун камсыз кылбайт (үчүнчү тараптын AJAX китепканасын колдонуу керек).
Акыры, экөө тең абдан жетилген алкактар болуп эсептелет жана экөөнүн ортосунда тандоо жеке каалоого жараша болот. Бул жерде белгилей кетүүчү нерсе, эгерде strutsка карата кандайдыр бир терс сезимдер болсо, алар Struts 1-версиясында табылган кемчиликтерден улам гана болот (ал азыр эскирген деп эсептелет).