أهم 50 أسئلة وأجوبة في مقابلات Struts (2024)

فيما يلي أسئلة وأجوبة مقابلة Struts للطلاب الجدد وكذلك المرشحين ذوي الخبرة للحصول على وظيفة أحلامهم.


1. ما هي مكونات إطار الدعامات؟

يتكون إطار الدعامات من المكونات التالية:

  1. Servlets جافا
  2. JSP (صفحات خادم جافا)
  3. العلامات المخصصة
  4. موارد الرسالة

تنزيل PDF مجاني: أسئلة وأجوبة مقابلة Struts


2. ما هو دور المعالج في التطبيقات المعتمدة على MVC؟

إنها مهمة المعالجات نقل الطلبات إلى النماذج المناسبة لأنها مرتبطة بطبقة النموذج في بنية MVC. تستخدم المعالجات معلومات التعيين من ملفات التكوين لنقل الطلب.


3. ما هو تدفق الطلبات في التطبيقات القائمة على Struts؟

تستخدم التطبيقات القائمة على الدعامات نمط تصميم MVC. تدفق الطلبات هو كما يلي:

  • يتفاعل المستخدم مع العرض من خلال النقر على أي رابط أو عن طريق إرسال أي نموذج.
  • وبعد تفاعل المستخدم، يتم تمرير الطلب إلى وحدة التحكم.
  • المراقب مسؤول عن تمرير الطلب إلى الإجراء المناسب.
  • الإجراء مسؤول عن استدعاء وظيفة في النموذج الذي تم تنفيذ كل منطق الأعمال فيه.
  • يتم تلقي الاستجابة من طبقة النموذج مرة أخرى من خلال الإجراء الذي يمررها بعد ذلك نحو العرض حيث يتمكن المستخدم من رؤية الاستجابة.

4. ما هو الملف الذي تستخدمه وحدة التحكم للحصول على معلومات التعيين لتوجيه الطلب؟

تستخدم وحدة التحكم ملف التكوين "struts-config.XML للحصول على كافة معلومات التعيين لتحديد الإجراء الذي سيتم استخدامه لتوجيه طلب المستخدم.


5. ما هو دور فئة العمل في الدعامات؟

في Struts، تعمل Action Class كوحدة تحكم وتقوم بالمهام الرئيسية التالية:

  • بعد تلقي طلب المستخدم، يقوم بمعالجة طلب المستخدم.
  • يستخدم النموذج المناسب ويسحب البيانات من النموذج (إذا لزم الأمر).
  • تحديد العرض المناسب لإظهار الاستجابة للمستخدم.
أسئلة مقابلة الدعامات
أسئلة مقابلة الدعامات

6. كيف يتم إنشاء حبة ActionForm؟

بديل

يتم إنشاء فول actionForm عن طريق توسيع الفصل org.apache.struts.action.ActionForm

In the following example we have created an actionForm bean with the name 'testForm':

import javax.servlet.http.HttpServletRequest; 
import org.apache.struts.action.*; 
public class testForm extends ActionForm { 
private String Id=null; 
private String State=null; 
public void setId(String id){
this.Id=id; 
} 
public String getId(){
return this.Id;
}
public void setState(String state){ 
this.State=state; 
} 
public String getState(){ 
return this.State; 
}

7. ما هو نوعي عمليات التحقق التي يدعمها Validator FrameWork؟

يتم استخدام Validator Framework للتحقق من صحة بيانات النموذج. يوفر هذا الإطار نوعين من عمليات التحقق:

  1. التحقق من جانب العميل في متصفح المستخدم
  2. التحقق من جانب الخادم

8. ما هي خطوات تركيب الدعامات؟

من أجل استخدام إطار عمل Struts، نحتاج فقط إلى إضافة ملف Struts.Jar في بيئة التطوير لدينا. بمجرد توفر ملف jar في CLASSPATH، يمكننا استخدام إطار العمل وتطوير التطبيقات القائمة على Strut.

أسئلة مقابلة الدعامات
أسئلة مقابلة الدعامات

9. كيف يتم تمكين التحقق من جانب العميل في نموذج JSP؟

لتمكين التحقق من جانب العميل في Struts، نحتاج أولاً إلى تمكين المكون الإضافي للمدقق في ملف struts-config.xml. ويتم ذلك عن طريق إضافة إدخالات التكوين التالية في هذا الملف:

<!--  Validator plugin -->
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>

ثم يتم تعريف قواعد التحقق من الصحة في ملف validation.xml. إذا كان النموذج يحتوي على حقل بريد إلكتروني ونريد تمكين التحقق من جانب العميل لهذا الحقل، تتم إضافة التعليمات البرمجية التالية في ملف validation.xml:

<form name="testForm">
<field  property="email"
depends="required">
<arg key="testForm.email"/>
</field>
</form>

10. كيف يتم استخدام علامة تعيين الإجراء لإعادة توجيه الطلب في ملف تكوين Struts؟

في ملف تكوين Struts (struts-config.xml)، يتم تحديد خيارات إعادة التوجيه ضمن علامة تعيين الإجراء.

في المثال التالي، عندما يقوم المستخدم بالنقر فوق الارتباط التشعبي test.do، سيتم تحويل الطلب إلى /pages/testing.jsp باستخدام التكوينات التالية من ملف struts-config.xml:

<action  path="/test" forward="/pages/testing.jsp">

ستتم عملية إعادة التوجيه هذه عندما ينقر المستخدم على الارتباط التشعبي التالي في صفحة jsp:

<html:link</strong> page="/test.do</strong>">Controller Example</html:link>

11. كيف يمكن التحكم في إرسال النموذج المكرر في Struts؟

في Struts، توفر فئة الإجراء طريقتين مهمتين يمكن استخدامهما لتجنب عمليات إرسال النماذج المكررة.

تنشئ طريقة saveToken () لفئة الإجراء رمزًا مميزًا فريدًا وتحفظه في جلسة المستخدم. يتم استخدام طريقة isTokenValid() ثم يتم استخدامها للتحقق من تفرد الرموز المميزة.


12. في Struts، كيف يمكننا الوصول إلى Java Beans وخصائصها؟

مكتبة Bean Tag هي مكتبة Struts التي يمكن استخدامها للوصول إلى Java Beans.


13. ما هو ملف التكوين المستخدم لتخزين معلومات تكوين JSP في Struts؟

للحصول على تفاصيل تكوين JSP، يتم استخدام ملف Web.xml.


14. ما هو الغرض من طريقة التنفيذ لفئة العمل؟

تنفيذ أسلوب فئة العمل هو المسؤول عن تنفيذ منطق الأعمال. إذا كانت أي معالجة مطلوبة بناءً على طلب المستخدم، فسيتم إجراؤها بهذه الطريقة. تقوم هذه الطريقة بإرجاع كائن actionForward الذي يوجه التطبيق إلى الصفحة المناسبة.

في المثال التالي، سوف تقوم طريقة التنفيذ بإرجاع كائن actionForward المحدد في struts-config.xml بالاسم "exampleAction":

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class actionExample extends Action
{
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception{
return mapping.findForward("exampleAction");
}
}

15. ما الفرق بين ملفات validation.xml وملفات validator-rules.xml في إطار عمل Struts Validation؟

في Validation.xml، نحدد قواعد التحقق من الصحة لأي وحدة Java محددة بينما في ملف validator-rules.xml، يتم تعريف قواعد التحقق القياسية والعامة.


16. كيف يمكننا عرض كافة أخطاء التحقق للمستخدم على صفحة JSP؟

لعرض جميع أخطاء التحقق من الصحة بناءً على قواعد التحقق المحددة في ملف validation.xml، نستخدم علامة في ملف JSP الخاص بنا.


17. ما هو التعامل مع الاستثناءات التصريحية في Struts؟

عندما يتم تعريف منطق معالجة الاستثناءات في struts-config.xml أو ضمن علامة الإجراء، فإنه يُعرف بمعالجة الاستثناءات التعريفية في Struts.

في المثال التالي، قمنا بتعريف الاستثناء في ملف struts-config.xml لـ NullPointerException:

<global-exceptions>

<exception key="test.key"

Type="java.lang.NullPointerException"

Path="/WEB-INF/errors/error_page.jsp"

</global-exceptions>

18. ما هو DynaActionForm؟

DynaActionForm هو نوع خاص من فئة actionForm (فئة فرعية من فئة ActionForm) يستخدم لإنشاء وحدات النموذج ديناميكيًا. ويستخدم ملفات التكوين لإنشاء حبة النموذج.


19. ما هي تغييرات التكوين المطلوبة لاستخدام Tiles في Struts؟

لإنشاء مكونات قابلة لإعادة الاستخدام باستخدام إطار عمل Tiles، نحتاج إلى إضافة كود تعريف البرنامج المساعد التالي في ملف struts-config.xml:

<plug-in className="org.apache.struts.tiles.TilesPlugin" >

<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />

<set-property property="moduleAware" value="true" />

</plug-in>

20. ما الفرق بين جاكرتا ستروتس و أباتشي ستروتس؟ أيهما أفضل للاستخدام؟

كلاهما واحد ولا يوجد فرق بينهما.


21. ما فائدة ملف التكوين Struts.xml؟

يعد ملف Struts.xml أحد ملفات التكوين الرئيسية لإطار عمل Struts والذي يُستخدم لتحديد التعيين بين عنوان URL والإجراء. عندما تتلقى وحدة التحكم طلب المستخدم، تستخدم وحدة التحكم معلومات التعيين من هذا الملف لتحديد فئة الإجراء المناسبة.


22. كيف يتم تعريف مكتبات العلامات في Struts؟

يتم تعريف مكتبات العلامات في ملف التكوين (web.xml) بالداخل العلامة على النحو التالي:

<taglib>

<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>

<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>

</taglib>

23. ما أهمية العلامات المنطقية في الدعامات؟

يساعد استخدام العلامات المنطقية في Struts في كتابة تعليمات برمجية نظيفة وفعالة في طبقة العرض التقديمي دون استخدام البرامج النصية.


24. ما هما نوعان النطاق لفاصوليا النموذج؟

  • نطاق الطلب: تتوفر قيم Formbean في الطلب الحالي فقط
  • نطاق الجلسة: تتوفر قيم Formbean لجميع الطلبات في الجلسة الحالية.

25. كيف يمكننا تجميع الإجراءات ذات الصلة في مجموعة واحدة في Struts؟

لتجميع العديد من الإجراءات ذات الصلة في مجموعة واحدة، يمكننا استخدام فئة DispatcherAction.


26. متى يجب أن نستخدم SwtichAction؟

أفضل سيناريو لاستخدام فئة SwitchAction هو عندما يكون لدينا تطبيق معياري به وحدات متعددة تعمل بشكل منفصل. باستخدام فئة SwitchAction يمكننا التبديل من مورد في وحدة واحدة إلى مورد آخر في بعض الوحدات المختلفة للتطبيق.


27. ما هي فوائد إطار الدعامات؟

تعتمد Struts على MVC، وبالتالي يوجد فصل جيد للطبقات المختلفة في Struts مما يجعل تطوير تطبيقات Struts وتخصيصها أمرًا سهلاً. استخدام ملفات التكوين المختلفة يجعل تطبيقات Struts قابلة للتكوين بسهولة. كما أن Struts مفتوحة المصدر وبالتالي فهي فعالة من حيث التكلفة.


28. ما هي الخطوات المطلوبة لترحيل التطبيق من Struts1 إلى Struts2؟

الخطوات التالية مطلوبة لترحيل Struts1 إلى Struts2:

  1. انقل نموذج إجراء Struts1 إلى Struts2 POJO.
  2. تحويل ملف التكوين Struts1 (struts-config.xml) إلى ملف التكوين Struts2 (struts.xml)

29. كيف يتم التحقق من صحة خصائص النموذج في الدعامات؟

للتحقق من صحة الخصائص المملوءة، يتم استخدام طريقة validate() لفئة ActionForm قبل التعامل مع التحكم في formbean لفئة Action.


30. ما فائدة طريقة إعادة التعيين لفئة ActionForm؟

يتم استخدام طريقة إعادة تعيين فئة actionForm لمسح قيم النموذج قبل بدء طلب جديد.


31. ما هي عيوب الدعامات؟

على الرغم من أن Struts تتمتع بعدد كبير من المزايا المرتبطة بها، إلا أنها تتطلب أيضًا منحنى تعليميًا أكبر وتقلل أيضًا من الشفافية في عملية التطوير.

تفتقر Struts أيضًا إلى التوثيق المناسب، وبالنسبة للعديد من مكوناتها، لا يتمكن المستخدمون من الحصول على الموارد المناسبة عبر الإنترنت للحصول على المساعدة.


32. ما فائدة ملف Resourcesbundle.properties في إطار عمل التحقق من صحة Struts؟

يتم استخدام ملف Resourcesbundle.properties لتحديد رسائل خطأ محددة في أزواج القيمة الرئيسية لأية أخطاء محتملة قد تحدث في التعليمات البرمجية.

يساعد هذا الأسلوب في الحفاظ على نظافة التعليمات البرمجية حيث لا يحتاج المطور إلى تضمين كافة رسائل الخطأ داخل التعليمات البرمجية.


33. هل يمكنني الحصول عليها أتش تي أم أل خاصية النموذج دون أساليب getter و setter formbean المرتبطة بها؟

لكل خاصية نموذج html، يجب تحديد أساليب getter وsetter في صيغة formbean وإلا فسيؤدي التطبيق إلى حدوث خطأ.


34. ما هو عدد وحدات التحكم servlet المستخدمة في تطبيق Struts؟

يعمل إطار Struts على مفهوم نهج التحكم المركزي ويتم التحكم في التطبيق بأكمله بواسطة وحدة تحكم servlet واحدة. ومن ثم، فإننا نحتاج إلى وحدة تحكم servlet واحدة فقط في تطبيق servlet.


35. بالنسبة لتطبيق Struts واحد، هل يمكن أن يكون لدينا عدة ملفات struts-config.xml؟

يمكننا الحصول على أي عدد من ملفات Struts-config.xml لتطبيق واحد.

نحن بحاجة إلى التكوينات التالية لهذا:

<servlet>

<servlet-name>action</servlet-name>

<servlet-class>

org.apache.struts.action.ActionServlet

</servlet-class>

<init-param>

<param-name>config</param-name>

<param-value>

/WEB-INF/struts-config.xml

/WEB-INF/struts-config_user.xml

/WEB-INF/struts-config_admin.xml

</param-value>

</init-param>

.............

.............

</servlet>

36. ما هي مكونات النموذج التي يدعمها Struts؟

تدعم الدعامات جميع أنواع النماذج بما في ذلك Java Beans وEJB وCORBA. ومع ذلك، لا يوجد لدى Struts أي دعم مدمج لأي نموذج محدد، ويعود للمطور اختيار أي نموذج.


37. متى يكون من المفيد استخدام IncludeAction؟

IncludeAction عبارة عن فئة عمل مقدمة من Struts وهي مفيدة عندما يكون التكامل مطلوبًا بين التطبيق القائم على Struts وServlet.


38. هل خيط الدعامات آمن؟

نعم الدعامات آمنة للخيط. في Struts، لا يلزم وجود كائن servlet جديد للتعامل مع كل طلب؛ بل يتم استخدام مؤشر ترابط جديد لكائن فئة الإجراء لكل طلب جديد.


39. ما هي تغييرات التكوين المطلوبة لاستخدام ملفات الموارد في Struts؟

يمكن استخدام ملفات الموارد (ملفات الخصائص) في Struts عن طريق إضافة إدخال التكوين التالي في ملف struts-config.xml:

<message-resources parameter="com.login.struts.ApplicationResources"/>

40. كيف يمكن استخدام الفاصوليا المتداخلة في تطبيقات الدعامات؟

توفر Struts مكتبة علامات منفصلة (مكتبة العلامات المتداخلة) لهذا الغرض. باستخدام هذه المكتبة، يمكننا دمج الفاصوليا في أي تطبيق يعتمد على Struts.


41. ما هي الفئات الأساسية لإطار Struts؟

فيما يلي الفئات الأساسية التي يوفرها Struts Framework:

  • فئة العمل
  • فئة نموذج العمل
  • فئة رسم الخرائط العمل
  • فئة العمل إلى الأمام
  • فئة أكشن سيرفلت

42. هل يمكننا التعامل مع الاستثناءات في Struts برمجياً؟

نعم، يمكننا التعامل مع الاستثناءات في Struts برمجيًا باستخدام كتل المحاولة والالتقاط في الكود.

try {

// Struts code

}

Catch (Exception e) {

// exception handling code

}

43. هل إطار الدعامات جزء من J2EE?

على الرغم من أن إطار عمل Struts يعتمد على تقنيات J2EE مثل JSP وJava Beans وServlets وما إلى ذلك، إلا أنه ليس جزءًا من معايير J2EE.


44. كيف يتم تكوين رسم خرائط العمل في Struts؟

يتم تكوين تعيينات الإجراءات في ملف التكوين struts-config.xml ضمن العلامة على النحو التالي:

<pre><action-mappings>
<action path="/login"
type="login.loginAction"
name="loginForm"
input="/login.jsp"
scope="request"
validate="true">
<forward name="success" path="/index.jsp"/>
<forward name="failure" path="/login_error.jsp"/>
</action>
</action-mappings>

45. متى يجب عليك اختيار Struts Framework؟

يجب استخدام الدعامات عندما يكون أي من أو بعض الشروط التالية صحيحًا:

  • مطلوب تطوير تطبيق قوي للغاية على مستوى المؤسسة.
  • مطلوب تطبيق قابل لإعادة الاستخدام وقابل للتكوين بدرجة كبيرة.
  • مطلوب تطبيق قائم على MVC مقترن بشكل غير محكم مع فصل واضح للطبقات المختلفة.

46. ​​لماذا يعتبر ActionServlet مفردًا في Struts؟

في إطار عمل Struts، يعمل actionServlet كوحدة تحكم ويتم التحكم في جميع الطلبات المقدمة من المستخدمين بواسطة وحدة التحكم هذه. يعتمد ActionServlet على نمط التصميم المفرد حيث يجب إنشاء كائن واحد فقط لفئة وحدة التحكم هذه. يتم إنشاء سلاسل رسائل متعددة لاحقًا لكل طلب مستخدم.


47. ما هي الخطوات المطلوبة لإعداد إطار عمل المدقق في Struts؟

الخطوات التالية مطلوبة لإعداد إطار عمل المدقق في Struts: – تهجئة خاطئة

  1. في دليل WEB-INF، ضع ملفات valdator-rules.xml وvalidation.xml.
  2. تمكين البرنامج المساعد للتحقق من الصحة في ملفات struts-config.xml عن طريق إضافة ما يلي:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml"/>
</plug-in>

48. ما هي التقنيات التي يمكن استخدامها في عرض الطبقة في الدعامات؟

في Struts، يمكننا استخدام أي من التقنيات التالية في طبقة العرض:

  • JSP
  • HTML
  • XML/XSLT
  • ملفات WML
  • قوالب السرعة
  • الخوادم

49. ما هي شروط عمل ActionForm بشكل صحيح؟

يجب أن يستوفي ActionForm الشروط التالية حتى يعمل بشكل صحيح:

  • يجب أن يكون لديه مُنشئ بلا وسيطة.
  • يجب أن يكون لديه أساليب getter وsetter عامة لجميع خصائصه.

50. ما هي المكتبة التي توفرها Struts لعناصر النموذج مثل خانات الاختيار ومربعات النص وما إلى ذلك؟

توفر Struts مكتبة علامات HTML التي يمكن استخدامها لإضافة عناصر النموذج مثل حقول النص ومربعات النص وأزرار الاختيار وما إلى ذلك.


ستساعد أسئلة المقابلة هذه أيضًا في حياتك (شفهي)

مشاركة

3 تعليقات

  1. الصورة الرمزية سميثا يقول:

    شكرًا جزيلاً لك سيدي، رائع ;):)رابط تنزيل pdf لا يعمل. شكرًا

    1. الصورة الرمزية Guru99 يقول:

      تم إصلاح الخطأ! شكرا على الإبلاغ

      1. الصورة الرمزية سميثا يقول:

        شكرا سيدي :):)

اترك تعليق

لن يتم نشر عنوان بريدك الإلكتروني. الحقول المشار إليها إلزامية *