أپاتشي سترتس

عودة للموسوعة

أپاتشي سترتس

ساهم بشكل رئيسي في تحرير هذا الموضوع
أپاتشي سترتس
Apache Struts
طوره Apache Software Foundation
أحدث إصدار 2.2.1 / 16 أغسطس 2010; منذتسعة سنين (2010-08-16
مكتوب بلغة جاڤا
نظام التشغيل Cross-platform
النوع إطار تطبيق الوب
الرخصة رخصة أپاتشي 2.0
مسقط وب http://struts.apache.org/

أپاتشي سترتس هوweb application framework مفتوح المصدر يستخدم لتطوير java EE web application. وهويستخدم ال java servlet Avdk pi لتشجيع المطورين لتبني ال MVC.

وسمي Struts لأن هذه البيئة تعني التزويد بالمساعدة غير المرئية invisible underpinning التي تدعم تطوير المشاريع الاحترافية struts تؤمن الرابط بين مكونات متنوعة تحت بيئة

جافا لتشكل منهم وحدة متكاملة

الهدف الأساسي هوجعل المقاييس الموجودة حاليا تسيطر بواسطة إنتاج البتر المفقودة التي

نحتاجها لإنتاج التطبيقات enterprise-grade التيقد يكون من السهل الحفاظ عليها مع مرور

الوقت وهوفي الأصل صمم من قبل craig mcclanahan ومنح ل Apache Foundation في أيار عام ال2000


سابقا كان يتوضع تحت ال Apache Jakarta project ويعهد باسم Jakarta struts واصبح

المشروع الأعلى مستوى بين مشاريع Apache عام ال 2005.

نظرة شاملة عن ال struts والهدف من تصميمه

في ال java EE web application القياسية الزبون يرسل معلومات إلى ال server عبر

قابلة التطبيق وهذه المعلومات تسلم إلى ال java servlet الذي يعالجها ويتفاعل مع

قواعد المعطيات وينتج الرد بصيفة HTML أوتعطى لصفحة Java sever pages وهي تعبير عن

مزيج من كود JAVA, HTML

كلا الطريقتين السابقتين تعتبر غير كافية لتطبيق المشاريع الكبيرة لأنها تخلط منطقية

المشروع مع العرض وتجعل الصيانة صعبة

الهدف من ال struts هوفصل ال model (منطق المشروع الذي يتعامل مع قواعد المعطيات )

عن ال view (صفحات ال HTML التي تعرض للمستخدم ) وال CONTROLLER ( النموذج الذي

يمرر المعلومات بين ا لmodel وال view ) Struts

تؤمن ل controller (servlet يسمى ب actionservlet) وكذلك تسهل كتابة قوالب لطبقة

العرض والإظهار (نموذجيا بلغة jps , ولكن لغة xml/xsltوvelocity أيضا مدعومة )

ال web application مسؤول عن كتابة ال model وعن تكوين ملف تشكيلة رمزي (central configuration file) يدعى stuts –config.xml الذي يربط بين ال view,model,controller معا

طلب المستخدم يرسل إلى ال controller بصيغة action معهد في ملف التشكيلة , وإذا

استقبل ال controller طلب من هذا الشكل يستدعي ال action Class المناسب الذي يتفاعل

مع جزء model code المناسب من التطبيق

ال model code يعيد Action forward وهي تعبير عن string تخبر ال controller أي

صفحة إ ظهار يجب إرسالها للمستخدم .

المعلومات تمرر بين ال model وال view على شكل صيغة خاصة من ال javaBeans . Custom tag library


تسمح بالقراءة والكتابة لمحتويات هذه ال beans من طبقة العرض بدون الحاجة لأي سطر java code .

وتحتوي أيضا على آلية لتشكيل القوالب تدعى tiles والتي تسمح _على سبيل المثال _ لطبقة


العرض بأن تتكون من header وfooter ومحتويات الصفحة بحيث تكون هذه المكونات جميعها

مستقلة بعضها عن بعض .


بنية ال struts :

يتكون ال struts من ثلاثة مكونات مفتاحية :

- Request handler والذي يطلب من مطور المشروع , ويستخدم لتصفح url الخاص2

- Response handlerالذي يستخدم لنقل التحكم لمورد آخرقد يكون مسؤول عن إكمال

الطلب

- Tag library والتي تساعد المطورين من إنتاج مشاريع معتمدة على القابلات

التفاعلية مع صفحات السيرفر

وال struts تتكون تقريبا من 300 صف وقابلة مرتبين ب 12 packages برفقة الخدمات

والصفوف المساعدة وهذه البنية تؤمن الصفوف والقابلات للتعامل مع ال controller وال presentation

بمساعدة custom type libraries


the struts controller components

عندما يطلب مستخدم شيئا ما يتحول الطلب إلى struts action servlet الذي يعترض ال url

ويعتمد على ال struts configuration files ويعطى لل action class . Action class

هوجزء من ال controller المسؤول عن الاتصال مع طبقة ال model . The struts view component

وهوالمسؤول عن معلومات العرض للمستخدم ويستقبل منه المدخلات وهومسؤول عن إظهار

المعلومات المزودة من قبل ال model

غالبا ما نستخدم ال jsp لعرض الإظهار , ولزيادة القدرة الإظهارية نستطيع استخدام custom tags,java script

The struts model component

الذي يؤمن ال business logic والتعامل مع قواعد الممطيات أوأنظمة ال back-ends

وهوفي الغالب صف جافا ,ولا يوجد صيغة محددة لشكل ال model component هذا يعني

إمكانية استخدام ال java code المكتوب لتطبيق آخر .

علينا اختبار ال model حسب متطلبات الزبون التي لدينا.


إعداد بيئة عمل ال struts

- تنزيل ال JDK : قم بتنزيل ال JDK 1.4 أونسخة أحدث

- تنزيل ال Tomcat :قم بتحميل ال tomcat من مسقط Apache نسخة Jakarta-tomcat-5.0.4

 مثلا , ثم قم بتنزيله ,للتأكد من حتى تنزيله قد تم بشكل سليم : افتح مجلد التنزيل  /bin 
وولد تعليمة بدء التشغيل لتشغيل السيرفر ,افتح المتصفح الخاص بك واخط العنوان التالي http://localhost:8080

/ لاختبار السيرفر يفترض أن تظهر صفحة ترحيب

تنزيل تطبيق ال struts : قم بتحميل النسخة الأخيرة من ال struts من المسقط

الرسمي لها http://jakarta.apache.org/struts , قم بفك ضغط الملف في المسار الذي

تريده , ثم قم بنسخ الملفات struts-blank.war,struts-documenatation.war,struts-example.war

من مجلد

"Jakarta-struts-1.1\webapps" إلى مجلد "Jakarta-tomcat-5.0\webapps"

Struts-documentation.war :ويحوي ال API والمستندات الأساسية لتطوير ال struts application . Struts-blank.war : وهوstruts application فارغ ,وهومفيد في البدء بتطبيق struts

معد مسبقا Struts-example.war :وهوتطبيق mail reader demonstration سهل 4

- البدء بتطوير ال struts application الأول : قم بتغيير اسم struts-blank .war

إلى struts-tutorial.war في ال Jakarta –tomcat-5.0.4\webapps ثم انسخ الملف إلى Jakarta-tomcat-5.0.4\webapps Tomcat يقوم تلقائيا بفك ضغط الملف وتحميل التطبيق

==كيف يعمل ال struts== : 1- أي تطبيق تقوم بتطويرهقد يكون له واصف انتشار (deployment descriptor )مثل

WEB-INF/web.xml

وهذا الملف الذي يقرأه ال container ,ويحتوي على معلومات التشكيل التي عهدناها لل

web application الخاص بنا وهذه المعلومات تتضمن ملف ال index وصفحة الترحيب

الافتراضية

وخارطة ال servlet الخاص بنا متضمنا المسار واسم الامتداد وكل المتحولات الابتدائية

والمعلومات المتعلقة بعناصر السياق

في ملف ال WEB-INF/web.xml الخاص بتطبيقات ال sturts نحن بحاجة لأن نصمم ال

struts action servlet الذي يسلم جميع الطلبات الصادرة من المتصفح إلى خريطة المسقط

Struts action servlet هوالعنصر الرئيسي لل controller في ال struts وهذا الservlet يرث من ال httpservlet

وهذا ال SERVLET يؤمن خدمتين أساسيتين :

- عندما يبدأ عمل ال container يقرأ ملف التشكيلة الخاص بال struts ويحمله

للذاكرة بواسطة التابع init()

- يعترض طلبات ال H ttp بواسطة التابعين doGet(),doPost() ويعالجهم بالشكل السليم


2- في ال struts لدينا ملف xml آخر هوملف التشكيلة لل struts ويدعى struts.config.xml واسم هذا الملف قابل للتغيير ويمكن حتى يذكر في ملف web.xml

هذا الملف يتوضع تحت مجلد ال web-inf الخاص بالتطبيق وهذا الملف هوملف xml يصف جميع أجزاء تطبيق ال struts وهذا الملف يحوي معلومات عن عدة أنواع من ال struts ويصف تفاعلاتهم وأعمالهم ,ويستخدم هذا الملف لربط المسارات مع مكونات ال controller الخاص بالتطبيق والتي تعهد ب action path

3- في جميع action يجب تزويد ال struts بأسماء صفحات النتائج التي ستعرض كنتيجة لل action في المشروع الواحد قد تتواجد أكثر من صفحة عرض ,وتعرض حسب نتيجة ال action وال struts يعهد كيف من الممكن أن يوجه الصفحة المناسبة للوجهة السليمة ,وال model المناسب يتم استنادىؤه من قبل المكونات الداخلية لل controller

4- ال action ممكن حتى تتشارك مع ال javabeans في ملف التشكيلة للstruts

5- للإظهار في الstruts نستخدم صفحات ال jsp أوقوالب ال velocity أوصفحات ال HTML ولكن سيئة هذه اللغة أننا لا نستطيع الاستفادة من الميزات الكاملة للأدوات المرفقة مع البيئة

ويوجد أيضا مجموعة من ال custom tag library والتي تسهل إنشاء قابلات تفاعلية بشكل أنيق مع الaction form beans

ال struts jsp taglibs تملك عددا من ال tags التي تمكننا من التعامل مع المعطيات الديناميكية في الإظهار وهذه ال tags تمكننا من التفاعل مع ال controller بدون كتابة الكثير من سطور الجافا .

تنافس بنى ال mvc

على الرغم من حتى ال struts موثقة بشكل جيد وناضجة وتعتبر بنية معروفة لبناء front ends لتطبيقات الجافا لكنها الآن تقابل تحديات جديدة من بنى جديدة وخفيفة الوزن مثل tapestry,spring mvc,stripes

مقاييس ال xform والبنى الجديدة قد تصبح خيار آخر لبناء مصداقية قابلات التطبيق المعقدة مع ال struts في المستقبل

بنى ال webwork صممت باستخدام apache struts لعدة سنوات مضت طموحا لتقديم الزيادة والتحسين مع ثبات نفس البنية العامة لل struts الأصلي .

وقد تم الإعلان عن إعادة دمج ال struts مع ال webwork في كانون الأول عام 2005

webwork2.2 اعتمدت ك struts2 التي بلغت إصدارها الكامل في شباط 2007

مؤخرا قدمت شركة sun إضافات جديدة ل java plat form تدعى java server faces , بالإضافة إلى البنية الأساسية قدم

إلى غير ذلك نرى حتى ال apache struts project يقدم نسختين رئيسيتين من بنية ال struts :

- struts1 :وتعتبر ال web application framework الأكثر انتشارا للجافا ,وهذه النسخة تعتبر كاملة ,موثقة بشكل جيد ومدعومة بشكل كبير , وتعتبر الخيار الأمثل للذين يفضلون الحلول الأكيدة للمشاكل العامة

- struts2 :وبشكل عام تعهد ب web work2 .بعد العمل بشكل منفصل لعدة سنوات تم الدمج بين بين ال webwork وال struts communities ليقدموا ال struts 2 والذي يعتبر الخيار الأمثل للذين يفضلون الحلول الأنيقة للمشاكل الصعبة

بنى mvc آخرى لا تعتمد على j2EE:

castle monorail for Asp.Net ,TurboGears,Catalyst,Django,WebObject, Ruby on Rails ,SYmfony (for php)cakephp

وأيضا struts4php وهي نسخة من ال struts مخصصة لل php


انظر أيضا

  • Model-view-controller
  • مشروع جاكرتا
  • Java EE
  • JavaServer Faces
  • Stripes
  • Comparison of web application frameworks
  • ZK Framework

المصادر

قائمة المراجع

  • James Holmes: Struts: The Complete Reference, McGraw-Hill Osborne Media, ISBN 0-07-223131-9
  • Bill Dudney and Jonathan Lehr: Jakarta Pitfalls, Wiley, ISBN 978-0-471-44915-7
  • Bill Siggelkow: Jakarta Struts Cookbook, O'Reilly, ISBN 0-596-00771-X
  • James Goodwill, Richard Hightower: Professional Jakarta Struts, Wrox Press, ISBN 0-7645-4437-3
  • John Carnell and Rob Harrop: Pro Jakarta Struts, Second Edition, Apress, ISBN 1-59059-228-X
  • John Carnell, Jeff Linwood and Maciej Zawadzki: Professional Struts Applications: Building Web Sites with Struts, ObjectRelationalBridge, Lucene, and Velocity, Apress, ISBN 1-59059-255-7
  • Ted Husted, etc: Struts in Action, Manning Publications Company, ISBN 1-930110-50-2
  • Struts View Assembly and Validation, (PDF format).
  • Stephan Wiesner: Learning Jakarta Struts 1.2, Packt Publishing, 2005 ISBN 1-904811-54-X


وصلات خارجية

  • Official website
  • Struts 2 Plugin Registry
  • Struts2 Tutorial
  • Struts tutorial on JBoss
  • How to Test Struts 2 Actions Without a Container

نطقب:Application frameworks

تاريخ النشر: 2020-06-04 09:17:01
التصنيفات: Official website not in Wikidata, مؤسسة برمجيات أباتشي, Free cross-platform software, Free software programmed in Java, Java enterprise platform, Web application frameworks

مقالات أخرى من الموسوعة

سحابة الكلمات المفتاحية، مما يبحث عنه الزوار في كشاف:

آخر الأخبار حول العالم

مباراة ودية في مران الأهلي

المصدر: الأهلى . كوم - مصر التصنيف: رياضة
تاريخ الخبر: 2022-12-21 12:19:48
مستوى الصحة: 35% الأهمية: 41%

خبير يشرح كيف يؤثر القرار الأوروبي لتسقيف سعر للغاز على المغرب

المصدر: الأيام 24 - المغرب التصنيف: سياسة
تاريخ الخبر: 2022-12-21 12:20:31
مستوى الصحة: 63% الأهمية: 75%

هل ينجح المغرب في دبلوماسية الفوسفاط لكسب معركة ملف الصحراء؟

المصدر: الأيام 24 - المغرب التصنيف: سياسة
تاريخ الخبر: 2022-12-21 12:20:43
مستوى الصحة: 64% الأهمية: 81%

برلمانية: مشاركة السيسي في مؤتمر بغداد يعكس اهتمام مصر بتنمية العراق 

المصدر: بوابة أخبار اليوم - مصر التصنيف: سياسة
تاريخ الخبر: 2022-12-21 12:20:20
مستوى الصحة: 45% الأهمية: 64%

بنعلي ترفض مطالب المعارضة وتقول إن ملف “مصفاة لاسامير” معقد

المصدر: الأيام 24 - المغرب التصنيف: سياسة
تاريخ الخبر: 2022-12-21 12:20:40
مستوى الصحة: 68% الأهمية: 81%

«الصحة» تنظم يوما توعويا للأطفال مرضى السكري

المصدر: بوابة أخبار اليوم - مصر التصنيف: سياسة
تاريخ الخبر: 2022-12-21 12:20:10
مستوى الصحة: 54% الأهمية: 65%

السكة الحديد تعلن تحديث الموقع الإلكتروني الخاص بحجز التذاكر 

المصدر: بوابة أخبار اليوم - مصر التصنيف: سياسة
تاريخ الخبر: 2022-12-21 12:20:15
مستوى الصحة: 56% الأهمية: 63%

برلماني يثمّن تأكيد السيسي رفض مصر لأي تدخلات خارجية في شئون العراق

المصدر: بوابة أخبار اليوم - مصر التصنيف: سياسة
تاريخ الخبر: 2022-12-21 12:20:23
مستوى الصحة: 59% الأهمية: 61%

إلزام وزارة الصحة بدفع 60 ألف دولار نفقات لمريض زرع كبد فى الخارج

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2022-12-21 12:20:59
مستوى الصحة: 55% الأهمية: 67%

المقابل المادي يمنع الزمالك من التعاقد مع نجم الكاميرون (خاص)

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2022-12-21 12:20:57
مستوى الصحة: 45% الأهمية: 57%

تحميل تطبيق المنصة العربية