أهم 50 سؤالًا لمقابلة JSP (2024)

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

1) شرح JSP وتعريف استخداماته.

يشير JSP إلى صفحات خادم Java. إنها تقنية طبقة العرض التقديمي المستقلة عن النظام الأساسي. لأنه يأتي مع منصات SUN's J2EE. إنها تشبه صفحات HTML ولكن تحتوي على أجزاء من تعليمات Java البرمجية مضمنة فيها. يتم حفظها بامتداد .jsp. يتم تجميعها باستخدام برنامج التحويل البرمجي JSP في الخلفية وإنشاء Servlet من الصفحة.

👉 تنزيل مجاني بصيغة PDF: أسئلة وأجوبة مقابلة JSP


2) ما هي متطلبات مكتبة العلامات؟

تسمى مجموعة العلامات المخصصة مكتبة العلامات. يتم التعامل مع المهام المتكررة بسهولة أكبر وإعادة استخدامها عبر تطبيقات متعددة لزيادة الإنتاجية. يتم استخدامها من قبل مصممي تطبيقات الويب الذين يركزون على العرض التقديمي بدلاً من الوصول إلى قاعدة البيانات أو الخدمات الأخرى. بعض المكتبات الشائعة هي مكتبة علامات السلسلة ومكتبة علامات عرض Apache.


3) شرح تقنية JSP.

JSP هو امتداد قياسي لـ Java ويتم تعريفه أعلى امتدادات Servlet. هدفها هو تبسيط الإدارة وإنشاء صفحات الويب الديناميكية. إنها مستقلة عن النظام الأساسي وآمنة وتستخدم Java كلغة برمجة نصية من جانب الخادم.


4) شرح الكائنات الضمنية في JSP.

يتم استدعاء الكائنات التي تم إنشاؤها بواسطة حاوية الويب وتحتوي على معلومات تتعلق بطلب أو تطبيق أو صفحة معينة كائنات ضمنية. هم :

  • استجابة
  • استثناء
  • استمارتنا
  • طلب
  • الجلسة
  • صفحة
  • خارج
  • التكوين
  • pageContext
أسئلة مقابلة JSP
أسئلة مقابلة JSP

5) كيف يمكن منع عمليات الإرسال المتعددة بسبب نقرات زر التحديث؟

باستخدام نمط النشر/إعادة التوجيه/الحصول على أو نمط PRG، يمكن حل هذه المشكلة.

1) يتم إرسال النموذج الذي ملأه المستخدم إلى الخادم باستخدام طريقة POST أو GET. يتم تحديث الحالة في قاعدة البيانات ونموذج الأعمال.

2) يتم استخدام استجابة إعادة التوجيه للرد بواسطة servlet لصفحة العرض.

3) يتم تحميل العرض بواسطة المتصفح باستخدام أمر GET ولا يتم إرسال أي بيانات للمستخدم. هذا آمن من عمليات الإرسال المتعددة لأنها صفحة JSP منفصلة.


6) هل تكنولوجيا JSP قابلة للتوسيع؟

نعم، يمكن توسيع JSP بسهولة عن طريق استخدام وتعديل العلامات، أو الإجراءات المخصصة، المغلفة في مكتبات العلامات.


7) التفريق بين Response.sendRedirect(url) و .

<jsp.forward> يقوم العنصر بإعادة توجيه كائن الطلب من ملف JSP واحد إلى ملف آخر. يمكن أن يكون الملف الهدف HTML أو servlet أو ملف JSP آخر، ولكن يجب أن يكون في نفس سياق التطبيق مثل إعادة توجيه ملف JSP.

يرسل sendRedirect استجابة إعادة توجيه مؤقتة لـ HTTP إلى المتصفح. يقوم المتصفح بعد ذلك بإنشاء طلب جديد للصفحة المعاد توجيهها. يقتل متغيرات الجلسة.


8) هل يمكن الوصول إلى طلب لاحق باستخدام كود servlet الخاص به، إذا تم إرسال سمة الطلب بالفعل في JSP الخاص به؟

الطلب خارج النطاق، وبالتالي لا يمكن الوصول إليه. ومع ذلك، إذا تم تعيين سمة طلب في servlet لشخص ما، فيمكن الوصول إليها في JSP الخاص به.

JSP هو مكون من جانب الخادم ويتم ترجمة الصفحة إلى Java servlet، ثم يتم تنفيذها. يتم إعطاء كود HTML فقط كإخراج.


9) كيفية تضمين الملفات الثابتة في صفحة JSP؟

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


10) لماذا يمتلك JComponent أساليب add() وremove() ولكن Component لا يمتلك ذلك؟

JComponent هي فئة فرعية من الحاوية. أنه يحتوي على مكونات أخرى وJComponents.


أسئلة مقابلة JSP للمحترفين ذوي الخبرة

فيما يلي أسئلة وأجوبة مقابلة JSP للمرشحين ذوي الخبرة:

11) كيف يمكن تنفيذ صفحة JSP الآمنة؟

ويمكن القيام بذلك عن طريق تنفيذها بواسطة واجهة SingleThreadModel. قم بإضافة توجيه <%@page isThreadSafe=”false” %> في صفحة JSP.


12) كيف يمكن منع التخزين المؤقت لمخرجات صفحة JSP أو servlet بواسطة المتصفح؟

استخدام سمات رأس HTTP المناسبة لمنع إخراج المحتوى الديناميكي بواسطة صفحة JSP من التخزين المؤقت بواسطة المتصفح.


13) كيف يتم تقييد عرض أخطاء الصفحة في صفحة JSP؟

من خلال إعداد سمة "ErrorPage" لدليل PAGE لاسم صفحة الخطأ في صفحة JSP، ثم في صفحة الخطأ jsp قم بتعيين "isErrorpage="TRUE"، يمكن إيقاف عرض الأخطاء.


14) ما هي إجراءات JSP؟

إنها علامات XML، والتي توجه الخادم لاستخدام المكونات الموجودة أو التحكم في سلوك محرك JSP. وهي تتكون من بادئة نموذجية لـ "jsp:" واسم الإجراء.

<jsp:include/>
<jsp:getProperty/>	 	
<jsp:forward/>
<jsp:setProperty/>
<jsp:usebean/>
<jsp:plugin/>

15) التفريق بين و<%@تضمين الملف=…>.

تتضمن كلتا العلامتين معلومات من صفحة إلى أخرى.

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

يتم تضمين محتوى العلامة الثانية للملف نصيًا مع توجيه مماثل. لا يتم تضمين المحتوى الذي تم تغييره في الإخراج. يكون ذلك مفيدًا عندما تكون هناك حاجة إلى تعليمات برمجية من ملف jsp واحد بواسطة العديد من ملفات jsp.


16) هل يمكن استخدام المُنشئ بدلاً من init() لتهيئة servlet؟

نعم هذا ممكن. لكن هذا غير مفضل لأن init() تم تطويره لأن إصدارات Java السابقة لم تتمكن من استدعاء المُنشئات باستخدام الوسائط ديناميكيًا. لذلك لم يتمكنوا من تعيين servletConfig. ومع ذلك، لا تزال حاويات servlet اليوم تستدعي مُنشئ no-arg فقط. لذلك لا يمكن الوصول إلى servletContext أو servletConfig.


17) شرح أساليب دورة الحياة.

1) jsplnit(): تستدعي الحاوية هذا لتهيئة مثيل servlet. يتم استدعاؤه مرة واحدة فقط لمثيل servlet ويسبق كل الطرق الأخرى.

2) _jspService(): تستدعي الحاوية هذا لكل طلب وتمرره إلى الكائنات.

3) تدمير jsp(): يتم استدعاؤه بواسطة الحاوية قبل تدمير المثيل مباشرةً.


18) اشرح تعليقات مخرجات JSP؟

إنها تعليقات يمكن عرضها في ملف مصدر HTML.


19) تعريف التعبير

يتم استخدام علامة التعبير لإدراج قيم Java مباشرة في الإخراج. بناء الجملة الخاص به هو

<%=expression%>

يحتوي على تعبير لغة برمجة يتم تقييمه، ثم تحويله إلى سلسلة، ثم إدراجه حيث يأتي التعبير في ملف JSP.


20) تعريف التكوين.

التركيب له علاقة أقوى بالكائن من التجميع.


21) تعريف البرنامج النصي JSP.

إنها علامة JSP تحتوي على كود Java في صفحات JSP. بناء الجملة الخاص بهم هو <% %>. يتم تنفيذ التعليمات البرمجية المكتوبة في البرنامج النصي في كل مرة يتم فيها تشغيل البرنامج.


22) كيف يمكن نقل المعلومات من أحد برامج JSP إلى برنامج JSP آخر؟

الوسم يسمح لنا بتمرير المعلومات بين ملفات Jsp المتعددة.


23) شرح استخدامات بطاقة شعار.

<jsp:useBean>

id="beanInstName"

scope= "page | application"

class="ABC.class"  type="ABC.class"

</jsp:useBean>

تقوم هذه العلامة بإنشاء مثيل لـ Java Bean. يحاول أولاً معرفة ما إذا كان مثيل الفول موجودًا بالفعل وتعيين مرجع للمخازن في المتغير. يتم تحديد النوع أيضًا؛ آخرwise يتم إنشاء مثيل له من الفئة المحددة بتخزين مرجع في المتغير الجديد.


24) شرح التعامل مع استثناءات وقت التشغيل.

يتم استخدام سمة Errorpage لإلغاء اكتشاف استثناءات وقت التشغيل التي يتم إعادة توجيهها تلقائيًا إلى صفحة معالجة الأخطاء.

يقوم بإعادة توجيه المتصفح إلى صفحة JSP error.jsp في حالة ظهور أي استثناء لم يتم اكتشافه أثناء معالجة الطلب. إنها صفحة معالجة الأخطاء.


25) لماذا تبدأ _jspService() بـ "_" لكن طرق دورة الحياة الأخرى لا تبدأ؟

أيًا كان المحتوى الذي تم إنشاؤه في صفحة jsp، فسيتم إدخاله داخل طريقة _jspService() بواسطة الحاوية. إذا تم التجاوز، فسيعطي المترجم خطأ، ولكن يمكن تجاوز دورتي الحياة الأخريين بسهولة. لذا يُظهر "_" أنه لا يمكننا تجاوز هذه الطريقة.


26) شرح قيم النطاق المختلفة بطاقة شعار.

يتم استخدام العلامة لاستخدام أي كائن Java في صفحة jsp. بعض قيم النطاق هي:

1) التطبيق

2) الطلب

3) الصفحة

4) الجلسة


27) عرض نوعين من التعليقات في JSP.

النوعان هما :

<%–JSP Comment–%>
<!–HTML comment–>

28) هل يمكن تجاوز الطريقة الثابتة؟

يمكننا أن نعلن عن أساليب ثابتة بنفس التوقيع في فئة فرعية، ولكن لا يعتبر ذلك مهيمنًا لأنه لن يكون هناك أي تعدد أشكال في وقت التشغيل. وبالتالي فإن الجواب هو "لا".


29) شرح توجيهات JSP.

توجيهات JSP هي رسائل إلى محرك JSP. إنها بمثابة رسالة من صفحة إلى حاوية وتتحكم في معالجة الصفحة بأكملها. يمكنهم تعيين قيم عالمية مثل إعلان الفصل. وهي لا تنتج مخرجات وهي محاطة بـ <%@....%>


30) شرح توجيهات الصفحة.

تُعلم توجيهات الصفحة محرك JSP بالترويسات والمرافق التي تتلقاها الصفحة من البيئة. إنه موجود في أعلى جميع صفحات JSP. بناء الجملة الخاص به هو <%@ page attribute=”value”>


31) إظهار سمات توجيهات الصفحة.

  1. جلسة: يوضح ما إذا كانت بيانات الجلسة متاحة للصفحة.
  2. استيراد: يعرض الحزم التي تم استيرادها.
  3. تم تجاهله: يوضح ما إذا كان يتم تجاهل تعبيرات EL عندما يترجم JSP إلى ملف بريمج.
  4. نوع المحتوى: يسمح للمستخدم بتحديد نوع محتوى الصفحة.

32) ما هو تضمين التوجيه؟

يقوم توجيه التضمين بإدراج محتويات المورد بشكل ثابت في JSP الحالي. يساعد في إعادة استخدام التعليمات البرمجية دون الازدواجية. ويتضمن محتويات الملف في وقت الترجمة. بناء الجملة الخاص به هو كما يلي <%@ include file=”Filename”%>.


33) ما هي الإجراءات القياسية في JSP؟

إنها تؤثر على سلوك وقت التشغيل العام للصفحة والاستجابة المرسلة إلى العميل. يتم استخدامها لتضمين ملف في وقت الطلب، لإنشاء مثيل لـ JavaBean أو العثور على واحد. ويتم استخدامها أيضًا لإنشاء رمز خاص بالمتصفح أو إعادة توجيه طلب إلى صفحة جديدة.


34) شرح الإجراء jsp:setProperty.

يتم استخدامه لإعطاء قيم لخصائص الحبوب التي تم الرجوع إليها مسبقًا.


<jsp:setProperty name=”ABC” property=”myProperty”…

يتم تنفيذ jsp:setproperty حتى لو تم إنشاء مثيل لفاصوليا جديدة أو تم العثور على حبة موجودة.

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


35) تعريف الكتلة الثابتة.

يتم استخدامه لبدء عضو البيانات الثابتة. يتم تنفيذه قبل تحميل الفصل.


36) شرح jsp:عمل البرنامج المساعد.

يساعد هذا الإجراء في إدراج كائن معين في المتصفح أو تضمين العنصر المطلوب لتحديد تشغيل التطبيق الصغير باستخدام مكون Java الإضافي.


37) شرح التحقق من جانب العميل والخادم.

Javascript يتم استخدامه للتحقق من جانب العميل. يتم ذلك داخل المتصفح. يتم استخدام Javascript لإرسال بيانات النموذج في حالة نجاح التحقق من الصحة. لا تتطلب أخطاء التحقق من الصحة أي رحلة إضافية عبر الشبكة لأنه لا يمكن إرسال النموذج.

ويتم التحقق من الصحة أيضًا في الخادم بعد الإرسال. إذا فشل التحقق من الصحة، يلزم إجراء رحلة إضافية عبر الشبكة لإعادة إرسال النموذج إلى العميل.


38) ما هي مرحلة الترجمة؟

يقوم محرك JSP بترجمة وتجميع ملف JSP إلى servlet. ينتقل هذا servlet إلى مرحلة التنفيذ حيث تتم معالجة الطلبات والاستجابات. يتم تجميعها لأول مرة يتم الوصول إليها ما لم يتم تجميعها يدويًا مسبقًا. يعد التجميع اليدوي أو الصريح مفيدًا للبرامج الطويلة والمعقدة.


39) إجراء إعادة توجيه المتصفح من صفحة JSP.

<% response.sendRedirect(URL); %>

أو يمكننا تغيير موقع سمة رأس HTTP على النحو التالي:

<% response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); response.setHeader(URL); %>

40) إعطاء استخدامات لاستنساخ الكائنات.

يتم استخدام استنساخ الكائنات لإنشاء نسخة طبق الأصل من كائن ما عن طريق كتابة نفس الرمز أو استخدام تقنيات أخرى مختلفة.


41) كيفية إعادة توجيه الطلب إلى مصدر آخر.

<jsp:forward page="/Page2.jsp" />

42) كيف يمكن منع الإنشاء التلقائي للجلسة في صفحة JSP؟

تقوم صفحة JSP تلقائيًا بإنشاء جلسات للطلبات. عن طريق كتابة فولوwing، يمكن تجنبه.

<%@ page session=”false”  %>

43) كيف يمكنك تجنب التعليمات البرمجية النصية في JSP؟

يمكن استخدام JavaBeans أو العلامات المخصصة بدلاً من التعليمات البرمجية النصية.


44) شرح طريقة jspDestroy().

عندما تكون صفحة JSP على وشك التدمير، تستدعي الحاوية الأسلوب jspDestroy() من واجهة javax.servlet.jsp.JspPage. طرق تدمير Servlets مشابهة لها. ويمكن تجاوزه بسهولة لإجراء عملية التنظيف، كما هو الحال عند إغلاق اتصال قاعدة البيانات.


45) شرح فعل.

إنه إجراء يستخدم مع الإجراءات القياسية للتضمين أو إعادة التوجيه. فهو يساعد في تمرير أسماء المعلمات والقيم إلى المورد.


46) شرح الطريقة الساكنة.

الطريقة الثابتة هي من الفئة وليست كائنًا من الفئة. يمكن استدعاؤه بدون مثيل لفئة. يمكن للأعضاء الثابتين أيضًا الوصول إلى البيانات الثابتة وتغيير قيمتها.


47) كيفية تعطيل البرمجة النصية؟

يمكن تعطيل البرمجة النصية بسهولة عن طريق تعيين عنصر البرمجة النصية غير الصالح في واصف النشر على صحيح. وهو عنصر فرعي من مجموعة الممتلكات. ويمكن أن تكون كاذبة كذلك.


48) تعريف إعلان JSP.

إعلان JSP هي علامات تستخدم في إعلان المتغيرات. وهي محاطة بالعلامة <%!%>. يتم استخدامها في إعلان الوظائف والمتغيرات.

<%@page contentType=”text/html” %>

<html>
<body>
<%!
	int a=0;
	private int getCount(){
	a++;
return a;
}%>
<p>Values of a are:</p>
<p><%=getCount()%></p>
</body>
</html>

49) كيف يمكن منع تخزين مخرجات HTML في ذاكرة التخزين المؤقت؟

<%
response.setHeader("Cache-Control", "no=store");
response.setDateHeader("Expires", 0);
%>

50) كيف يكون JSP أفضل من تقنية Servlet؟

JSP هي تقنية من جانب الخادم لتسهيل عملية إنشاء المحتوى. فهي تتمحور حول المستندات، في حين أن servlets عبارة عن برامج. يمكن أن تحتوي صفحة خادم Java على أجزاء من برنامج جافا، التي تقوم بتنفيذ فئات Java وإنشاء مثيل لها. ومع ذلك، فإنها تحدث داخل ملف قالب HTML. يوفر إطارًا لتطوير تطبيق الويب.

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