1. مقدمة إلى JSP
JSP (صفحات خادم Java) هي لغة برمجة نصية من جانب الخادم وهي تقنية تضيف لغة Java إلى صفحات HTML لإنشاء صفحات ديناميكية: تتم إضافة علامات جديدة (<%، %>،...).
JSP هي تقنية إنشاء صفحات ويب ديناميكية تم تطويرها استنادًا إلى Java وServlet، وتنفيذها الأساسي هو Java Servlet.
تتكون صفحات JSP من كود HTML ورمز Java المضمن فيه. يقوم الخادم بمعالجة رموز Java هذه بعد أن يطلب العميل الصفحة، ثم يقوم بإرجاع صفحة HTML التي تم إنشاؤها إلى متصفح العميل.
2. عملية تنفيذ JSP يطلب العميل صفحة JSP -> يقوم محلل JSP بتوزيع *.jsp وتجميعه في *.java -> يقوم أمر javac بتجميعه في *.class -> ينفذ ملف الفئة -> يستجيب ويعيد النتيجة إلى العميل
يحتوي كود JSP على فئتين: عناصر JSP وبيانات القالب. تشير بيانات القالب إلى الجزء الذي لا يعالجه محرك JSP، أي أن محرك JSP سيقوم مباشرة بتمرير الأجزاء الأخرى غير العلامات <%...%> دون أي معالجة.
عند تنفيذ JSP لأول مرة أو بعد تعديل ملف JSP، فإنه سيتم استدعاء JSP Parser لتجميع ملف *.jsp في برنامج servlet، لذلك سيكون أبطأ.
3. بناء جملة JSP الأساسي
1. نوعان من التعليقات التوضيحية
(1) تعليق HTML يمكنك إضافة تعليق بتنسيق HTML إلى كود JSP. يتم إرسال هذا التعليق إلى العميل ولكن لا يتم عرضه على الصفحة.
إذا كان المبرمج مخترقًا، فإن التعليق الذي يتم إرجاعه إلى العميل هو
(2) تتم كتابة تعليقات JSP في كود JSP ولكن لا يتم إرسالها إلى العميل.
<%-- تعليق JSP، سيتم تجاهل هذا التعليق عند تجميع JSP --%>
<%-- /*تعليقات متعددة الأسطر في البرنامج النصي*/ --%>
<%-- /**تعليقات متعددة الأسطر في البرنامج النصي، والتي يمكن استخراجها من ملفات جافا باستخدام javadoc*/ --%>
<%-- تعليق سطر واحد في JSP--%>
2. 3 عناصر البرنامج النصي
(1) إعلان المتغيرات العالمية
<%!
(2) التعبير
في تعليمات JSP البرمجية، غالبًا ما تُستخدم التعبيرات لإخراج قيمة متغير، والذي يمكن أن يكون في أي مكان
<%!int a=1; int b=2;
<%=a+b%> <%=str>
ملاحظة: لا يمكنك استخدام الرمز "؛" كفاصل للتعبير. ولكن نفس التعبير يجب أن ينتهي بفاصلة منقوطة في البرنامج النصي.
(3) النصي
يتم استخدام مقطع البرنامج النصي لاحتواء مقطع برنامج Java صالح
<% int b=3 %>المتغير المحلي
3. 3 عناصر الأمر
(١) أمر الصفحة
<%@ page contentType="text/html;charset=utf-8"%>
تحديد السمات العامة لملف JSP، بما في ذلك: اللغة، والامتدادات، والاستيراد، والجلسة، والمخزن المؤقت، والتدفق التلقائي، وisThreadSafe، والمعلومات، وerrorPage، وisErrorPage، وcontentType (تنسيق الإخراج من الخادم إلى العميل)
يمكن أن يكون موقعه في أي مكان بالصفحة، لكن يوصى بوضعه في أعلى الصفحة.
اللغة: تحدد نوع لغة البرمجة النصية حاليًا، يمكن استخدام "java" فقط.
يمتد: يشير إلى الاسم الكامل لفئة Java التي يجب إضافتها عند ترجمة JSP، وسيحد من قدرة الترجمة لـ JSP، لذا استخدمه بحذر!
استيراد: قائمة حزم جافا التي تحتاج إلى استيرادها.
الجلسة: قم بتعيين ما إذا كان العميل يحتاج إلى جلسة HTTP. الافتراضي صحيح.
المخزن المؤقت: يتم استخدام حجم المخزن المؤقت بواسطة الكائن الصادر لمعالجة إخراج JSP الذي تم تنفيذه إلى متصفح العميل. القيمة الافتراضية هي 8 كيلو بايت.
autoFlush: يضبط ما إذا كان سيتم فرض الإخراج في حالة تجاوز سعة المخزن المؤقت، إذا تم تعريفه على أنه صحيح (القيمة الافتراضية)، فسيكون الإخراج طبيعيًا إذا تم تعريفه على أنه خطأ، فسيحدث خطأ غير متوقع.
isThreadSafe: يحدد ما إذا كان يمكن استخدام ملف JSP في عدة سلاسل رسائل. الافتراضي صحيح.
معلومات: معلومات نصية. يمكن استرجاعه باستخدام طريقة Servlet.getServletInfo().
errorPage: قم بتعيين ملف JSP الذي يتعامل مع أحداث الاستثناء
sErrorPage: قم بتعيين ما إذا كانت هذه الصفحة هي صفحة تتعامل مع أحداث الاستثناء. إذا تم التعيين على "صحيح"، فيمكن استخدام كائن الاستثناء.
contentType: قم بتعيين نوع MIME ومجموعة ترميز الأحرف. نوع MIME الافتراضي هو text/html، ومجموعة الأحرف الافتراضية هي charset=ISO-8859-1.
يمكن استخدام توجيهات < %@page %> المتعددة في الصفحة، ولكن باستثناء سمة الاستيراد، لا يمكن استخدام السمات الأخرى إلا مرة واحدة.
الحزم المستوردة بواسطة JSP بشكل افتراضي تم استيراد الحزم التالية أثناء تجميع JSP، لذلك ليست هناك حاجة لاستخدام توجيه الصفحة لتقديمها في ملف JSP:
Java.lang.*
جافاكس.سيرفلت.*
javax.servlet.jsp.*
javax.servlet.http.*
(2) تضمين التوجيه
كود اتش تي ام ال
<%@ تضمين الملف = "المسار النسبي" %>
استخدم توجيه التضمين لتضمين ملف ثابت في JSP وتحليل عبارات JSP في هذا الملف.
إذا كان المسار يبدأ بـ "/"، فإن هذا المسار يشير بشكل أساسي إلى مسار السياق لتطبيق jsp.
إذا تم فتح المسار كاسم ملف أو دليل ملف، فإن هذا المسار هو المسار الحالي لملف JSP المستخدم.
(3) أمر تاجليب
كود اتش تي ام ال
<%@ taglib uri = "TagLibrary" prefix = "mypfx" %>
استخدم توجيه taglib لتحديد مكتبة العلامات والبادئة المخصصة لها.
uri: يقوم معرف المورد الموحد بتسمية التسمية المخصصة بشكل فريد بناءً على بادئة التسمية، والتي يمكن أن تكون مسارًا نسبيًا أو مطلقًا.
البادئة: بادئة التسمية المخصصة. لا تستخدم jsp، وjspx، وjava، وjavax، وservlet، وsun، وsunw كبادئات، فقد تم إعلان أنها محجوزة بواسطة Sun.
4. 8 أوامر عمل
(1) الانتقال إلى الصفحة:
تقوم العلامة
يحتوي على سمتين في المجموع
سمة الصفحة عبارة عن تعبير أو سلسلة تصف الملف أو عنوان URL المطلوب توجيهه.
كود اتش تي ام ال
احصل على اسم المستخدم من خلال request.getParameter("username")
(2) صفحة التضمين:
إذا تم تضمين الملفات الثابتة فقط، فإن هذا التضمين يضيف فقط محتويات الملف المضمن إلى ملف JSP، على غرار < %@include% >؛
إذا تم تضمين مورد ويب ديناميكي، فسيتم أيضًا تنفيذ الملف المضمن بواسطة مترجم JSP.
إذا كان ملف التضمين هذا ديناميكيًا، فيمكنك أيضًا استخدام
(3) إنشاء الفول:
قم بإنشاء مثيل Bean وحدد اسمه ونطاقه.
يحتوي على 5 سمات.
المعرف: قم بتأكيد متغير Bean في النطاق المحدد، واستخدم المعرف لاستخدام مثيل Bean هذا في البرنامج. قيمة المعرف حساسة لحالة الأحرف.
النطاق: النطاق الذي يوجد فيه Bean والنطاق الصالح لاسم متغير المعرف. القيمة الافتراضية هي الصفحة.
فئة: استخدم الكلمة الأساسية الجديدة ومنشئ الفئة لإنشاء مثيل لفاصوليا من فئة ما. لا يمكن للفئة أن تكون مجردة ويجب أن تحتوي على مُنشئ عام بدون وسيطات.
النوع: إذا كانت حبة الفول هذه موجودة بالفعل في النطاق المحدد، فإن استخدام النوع سيؤدي إلى تعيين نوع بيانات لهذه الحبة. إذا تم استخدام النوع بدون فئة أو beanName، فلن يتم إنشاء مثيل للفاصوليا.
beanName: beanName يمكن أن يكون عبارة عن سلسلة package.class، أو تعبير jsp، وسيتم تمرير قيمته إلى الأسلوب Beans.instantiate. يمكن أن تكون قيمة النوع هي نفس قيمة beanName أو فئتها الأساسية أو الواجهة التي تنفذها.
(4) تعيين خصائص الفول:
الاسم: يشير إلى اسم مثيل Bean الذي تم إنشاؤه في
الخاصية: تطابق الخصائص الموجودة في Bean
المعلمة: تشير إلى اسم المعلمة في كائن الطلب، وتعيين القيمة المقابلة لسمة Bean.
القيمة: استخدم القيمة المحددة لتعيين خاصية Bean. يمكن أن تكون هذه القيمة سلسلة أو تعبيرًا. إذا كانت سلسلة، فسيتم تحويلها إلى نوع سمة Bean (على سبيل المثال، سيتم تحويل "0.98" إلى النوع المزدوج 0.98). إذا كان تعبيرًا، فيجب أن يكون نوعه متسقًا مع نوع سمة Bean.
ملاحظة: لا يمكن استخدام سمات Param وسمات القيمة في نفس الوقت في نفس
(5) الحصول على خصائص الفول:
احصل على قيمة السمة في كائن Bean الموجود واعرضها على الصفحة.
الاسم: نفس اسم مثيل الكائن الموجود.
الخاصية: اسم الخاصية في الكائن
(6) استخدم البرنامج الإضافي:
كود اتش تي ام ال غير قادر على تحميل التطبيق الصغير!
الرجوع>
استخدم
(7) تحديد المعلمات:
يمكن استخدامه في
(8) رسالة خطأ في البرنامج الإضافي:
عندما لا يمكن عرض المكون الإضافي
3. كائنات JSP المضمنة
1. الطلب: يقوم هذا الكائن بتغليف المعلومات المقدمة من قبل المستخدم، ويمكن الحصول على المعلومات المغلفة عن طريق استدعاء الطريقة المقابلة للكائن.
عندما يحصل كائن الطلب على الأحرف الصينية المقدمة من قبل العميل، ستظهر أحرف مشوهة ويجب إجراء معالجة خاصة.
الطرق الشائعة الاستخدام:
getParameter(StringparameterName): احصل على معلومات إرسال النموذج.
getProtocol(): احصل على البروتوكول الذي يستخدمه العميل.
getServletPath(): احصل على الصفحة التي أرسل فيها العميل المعلومات.
getMethod(): طريقة الحصول على المعلومات المقدمة من قبل العميل.
getHeader(String str): احصل على قيم القبول والترميز والقبول في ملف رأس HTTP.
getRermoteHost(): احصل على عنوان IP الخاص بالعميل.
getServerName: احصل على اسم الخادم.
getServerPort: احصل على رقم منفذ الخادم.
getParameterNames(): احصل على أسماء جميع المعلمات المقدمة من قبل العميل.
2. الاستجابة: يستجيب كائن الاستجابة ديناميكيًا لطلب العميل ويرسل البيانات إلى العميل.
(1) الاستجابة ديناميكيًا لسمة contentType. استخدم أمر الصفحة لتعيين سمة contentType للصفحة بشكل ثابت. عند تعيين هذه السمة ديناميكيًا، استخدم Response.setContextType("text/html;charset=utf-8");
(2) إعادة توجيه الاستجابة
Response.sendRedirect("index.jsp");
3. الجلسة: كائن الجلسة
(1) ما هو كائن الجلسة؟
يتم إنشاء كائن الجلسة تلقائيًا عند تحميل صفحة JSP الأولى لإكمال إدارة الجلسة.
وتبدأ عندما يفتح العميل المتصفح ويتصل بالخادم، وينتهي عندما يغلق العميل المتصفح ويترك الخادم. وهذا ما يسمى بالجلسة.
(2) معرف كائن الجلسة
عندما يزور العميل صفحة JSP على الخادم لأول مرة، يقوم محرك JSP بإنشاء كائن جلسة ويعين رقم معرف من نوع السلسلة، كما يرسل محرك JSP رقم المعرف هذا إلى العميل ويخزنه في ملف تعريف الارتباط بهذه الطريقة، كائن الجلسة، لن يتم تعديل كائن جلسة العميل بواسطة الخادم إلا بعد أن يغلق العميل المتصفح، وتختفي مراسلات الجلسة مع العميل.
(3) الطرق الشائعة
public String getId(): احصل على رقم كائن الجلسة.
public void setAttribute(String str,Object obj): أضف كائن المعلمة إلى كائن الجلسة.
public Object getAttribute(): احصل على السمات الموجودة في كائن الجلسة بناءً على اسم السمة.
المنطقية العامة isNew(): تحديد ما إذا كان عميلاً جديدًا.
4. التطبيق: كائن التطبيق
(1) ما هو كائن التطبيق؟
يتم إنشاء كائن التطبيق هذا بعد بدء تشغيل الخادم. عندما يتصفح العميل بين الصفحات المختلفة لموقع الويب الذي تمت زيارته، يكون كائن التطبيق هو نفسه، ويشارك جميع العملاء كائن التطبيق المدمج هذا.
(2) الطرق الشائعة
setAttribute(String key,Object obj): إضافة كائن المعلمة إلى كائن التطبيق.
getAttibute (مفتاح السلسلة): احصل على السمات الموجودة في كائن التطبيق بناءً على اسم السمة
5. خارج: كائن الإخراج
الكائن الخارجي هو دفق إخراج يستخدم لإخراج البيانات إلى العملاء.
out.print(): إخراج أنواع مختلفة من البيانات.
out.newLine(): إخراج حرف السطر الجديد.
out.Close(): إغلاق الدفق.
6. التكوين: كائن التكوين بشكل عام، نستخدم كائن التكوين للحصول على بعض معلومات تكوين التهيئة، والطرق المستخدمة بشكل شائع هي getInitParameter وgetInitParameterNames للحصول على المعلمات أثناء تهيئة Servlet.
7.الصفحة: كائن الصفحة
يمثل كائن الصفحة كائن فئة التشغيل الذي تم إنشاؤه بواسطة ملف JSP ولا ينصح به للقراء العاديين.
8.PageContext: كائن سياق الصفحة
تتيح لك فئة PageContext المقدمة بواسطة JSP الوصول إلى العديد من خصائص الصفحة. يقوم متغير pageContext بتخزين قيمة كائن PageContext المرتبط بالصفحة الحالية. تحتوي فئة PageContext على أساليب مثل getRequest وgetResponse وgetOut وgetSession.
9.Exception: كائن الاستثناء
يمثل كائن الاستثناء كائن الاستثناء الذي تم إنشاؤه عند تشغيل ملف JSP. لا يمكن استخدام هذا الكائن مباشرة في ملفات JSP العادية، ولكن يمكن استخدامه فقط
يتم استخدام < %@page isErrorPage="true"%> في ملفات JSP. وذلك لأن كائن الخطأ الذي تم إنشاؤه عند تشغيل ملف JSP يتم طرحه ولا يمكن اعتراضه إلا بواسطة JSP الذي يستخدم العلامة < %@pageisErrorPage = "true"٪ > لاعتراض كائن الخطأ. الطريقة الأكثر استخدامًا هي getMessage، المستخدمة للحصول على معلومات الخطأ.
4. صفحة تسجيل الدخول المثيلة: Index.jsp
كود اتش تي ام ال
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
<أتش تي أم أل>
<الرأس>