English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
سيتم تقديم تعريف بسيط للغة الأساسية في هذا الفصل.
يمكن أن تحتوي جملة البرنامج على أي كود جافا أو متغير أو طريقة أو تعبير، طالما أنها صالحة في لغة البرنامج.
نموذج جملة البرنامج:
<% قطعة من الكود %>
أو يمكنك أيضًا كتابة جملة XML متطابقة مثل ما يلي:
<jsp:scriptlet> مقطع من الكود </jsp:scriptlet>
يجب كتابة أي نص أو علامة HTML أو عنصر JSP خارج البرنامج النصي.
سأقدم لك مثالاً هنا، وهو أيضًا أول مثال لـ JSP في هذا الدرس.
<html> <head><title>Hello World</title></head> <body> مرحبًا بالعالم! <br/> <% out.println("عنوان IP الخاص بك " + request.getRemoteAddr()); %> </body> </html>
ملاحظة:تأكد من أن Apache Tomcat مثبت في مجلد C:\apache-tomcat-7.0.2 وأن بيئة التشغيل قد تم إعدادها بشكل صحيح.
قم بتخزين الكود السابق في ملف hello.jsp، ثم أضفه إلى مجلد C:\apache-tomcat-7.0.2\webapps\ROOT، افتح المتصفح وأدخل في شريط العناوين http://localhost:8080/hello.jsp. بعد تشغيله، ستحصل على النتيجة التالية:
لعرض اللغة الصينية بشكل طبيعي في الصفحة، يجب أن تضيف الكود التالي في رأس ملف JSP:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
سنقوم الآن بتعديل البرنامج السابق كما يلي:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>基础教程网(oldtoolbag.com)</title> </head> <body> مرحبًا بالعالم! <br/> <% out.println("عنوان IP الخاص بك " + request.getRemoteAddr()); %> </body> </html>
بهذا يمكن عرض اللغة الصينية بشكل طبيعي.
يمكن أن يعلن جملة الإعلان عن متغير أو متغيرات عديدة أو طرق، ويُستخدم في الكود الجافا الذي يأتي بعد ذلك. في ملف JSP، يجب أن تُعلن هذه المتغيرات والطرق قبل استخدامها.
نموذج جملة إعلان JSP:
<%! declaration; [ declaration; ]+ ... %>
أو يمكنك أيضًا كتابة جملة XML متطابقة مثل ما يلي:
<jsp:declaration> مقطع من الكود </jsp:declaration>
مثال على البرنامج:
<%! int i = 0; %> <%! int a, b, c; %> <%! Circle a = new Circle(2.0); %>
يتم تحويل تعبيرات لغة السكربت الموجودة في عبرة جافا سكربت إلى String، ثم إدراجها في المكان الذي تظهر عبرة.
بما أن قيمة عبرة يتم تحويلها إلى String، يمكنك استخدام عبرة في سطر نصي دون الاهتمام بأمور أخرى مثل أن تكون علامة HTML.
يمكن أن تحتوي عنصر عبرة على أي تعبير يتوافق مع معايير لغة جافا، ولكن لا يمكن استخدام نقاط السطر للإنهاء بالتعبير.
تنسيق عبرة جافا سكربت:
<%= 表达ه %>
بالإضافة إلى ذلك، يمكنك كتابة جملة XML متساوية:
<jsp:expression> عبرة </jsp:expression>
مثال على البرنامج:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>基础教程网(oldtoolbag.com)</title> </head> <body> <p> تاريخ اليوم هو: 2016-6-25 13:41:26 </p> </body> </html>
运行后得到以下结果:
تاريخ اليوم هو: 2016-6-25 13:40:07
تعليقات جافا سكربت تحتوي على دورين رئيسيين: التعليق على الكود وإزالة جزء من الكود
تنسيق تعليقات جافا سكربت:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>基础教程网(oldtoolbag.com)</title> </head> <body> <%-- هذا الجزء من التعليق لن يتم عرضه في الصفحة --%> <p> تاريخ اليوم هو: 2016-6-25 13:41:26 </p> </body> </html>
运行后得到以下结果:
تاريخ اليوم هو: 2016-6-25 13:41:26
قواعد نحوية لاستخدام التعليقات في مختلف الحالات:
النحو | وصف |
---|---|
<%-- تعليق --%> | تعليقات جافا سكربت، لا يتم إرسال محتوى التعليقات إلى المتصفح ولا يتم ترميزها حتى |
<!-- تعليق --> | تعليقات HTML، يمكن رؤية محتوى التعليقات عند عرض ملف المصدر للصفحة من خلال المتصفح |
<\% | تمثل القيمة الثابتة <% |
%\> | تمثل القيمة الثابتة %> |
\' | استخدام الأقواس المفردة في الخصائص |
\" | استخدام الأقواس المزدوجة في الخصائص |
تعليمات جافا سكربت تستخدم لضبط خصائص الصفحة الكاملة من جافا سكربت.
تنسيق جافا سكربت لغة التعليمات:
<%@ directive attribute="value" %>
هناك ثلاثة أنواع من علامات التعليمات:
تعليمات | وصف |
---|---|
<%@ page ... %> | تحديد خصائص الاعتماد للصفحة، مثل لغة السكربت، صفحة الخطأ، احتياجات التخزين المؤقت، وما إلى ذلك |
<%@ include ... %> | تضمين ملف آخر |
<%@ taglib ... %> | إدخال تعريف مكتبة العلامات، يمكن أن تكون علامات مخصصة |
استخدام جافا سكربت لغة XML بنية التحكم في محرك servlet. يمكنه إدراج ملف ديناميكي، إعادة استخدام مكونات JavaBean، توجيه المستخدم إلى صفحة أخرى، توليد HTML ذات صلة بجافا إكسبلورر، وما إلى ذلك.
يملك علامة النشاط شكلاً واحداً فقط، ويتبع بصرامة معايير XML:
<jsp:action_name attribute="value" />
العلامات النشطة هي بعض الدوال المسبقًا معرفة، والجدول أدناه يحتوي على بعض علامات النشاط المتاحة لـ JSP:
النحو | وصف |
---|---|
jsp:include | للفصل بين الموارد الثابتة أو الديناميكية في الصفحة الحالية |
jsp:useBean | البحث عن تعيين وتفعيل عنصر JavaBean |
jsp:setProperty | تعيين قيمة عنصر JavaBean |
jsp:getProperty | إدراج قيمة عنصر JavaBean في output |
jsp:forward | إرسال جسم الطلب request من ملف JSP إلى ملف آخر |
jsp:plugin | للفصل بين كائنات Applet و JavaBean في الصفحة HTML المُنتجة |
jsp:element | إنشاء عنصر XML ديناميكي |
jsp:attribute | تحديد خصائص العنصر المُنشأين ديناميكيًا |
jsp:body | تحديد جسم العنصر المُنشأين ديناميكيًا |
jsp:text | للفصل بين بيانات النموذج |
يدعم JSP تسعة متغيرات معينة مسبقًا، تُعرف أيضًا بكائنات الخفية. يوجد في الجدول أدناه مقتضى هذه الكائنات الخفية التسعة:
كائن | وصف |
---|---|
request | HttpServletRequestمثال على فئة |
response | HttpServletResponseمثال على فئة |
out | PrintWriterمثال على فئة، يستخدم لتحويل النتائج إلى صفحة الويب |
session | HttpSessionمثال على فئة |
application | ServletContextمثال على فئة، يتعلق بالسياق التطبيقي |
config | ServletConfigمثال على فئة |
pageContext | PageContextمثال على فئة، يوفر الوصول إلى جميع الكائنات في صفحة JSP ونطاق الأسماء |
صفحة | مثل كلمة this في فئة Java |
استثناء | استثناء مثل جسم الكائن للفئة، يمثل جسم الاستثناء في الصفحة JSP التي تحدث فيها الأخطاء |
JSP تدعم دعم لغة Java بشكل شامل. يمكنك استخدام API لـ Java في برنامج JSP أو بناء كتل من código Java، بما في ذلك جمل التحكم وجمل التكرار وما إلى ذلك.
قسم الـ If…else، يرجى النظر في هذا المثال أدناه:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% int day = 3; %> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>基础教程(oldtoolbag.com)</title> </head> <body> <h2>مثال على IF...ELSE</h2> <% if (يوم == 1 | يوم == 7) { %> <p>今天是周末</p> <% } else { %> <p>今天不是周末</p> <% } %> </body> </html>
运行后得到以下结果:
IF...ELSE 示例 今天不是周末
现在来看看switch…case块,与if…else块有很大的不同,它使用out.println(),并且整个都装在脚本程序的标签中,就像下面这样:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% int day = 3; %> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>基础教程(oldtoolbag.com)</title> </head> <body> <h2>SWITCH...CASE 示例</h2> <% switch(day) { case 0: out.println("星期天"); break; case 1: out.println("星期一"); break; case 2: out.println("星期二"); break; case 3: out.println("星期三"); break; case 4: out.println("星期四"); break; case 5: out.println("星期五"); break; default: out.println("星期六"); } %> </body> </html>
浏览器访问,运行后得出以下结果:
SWITCH...CASE 示例 星期三
在JSP程序中可以使用Java的三个基本循环类型:for,while,和 do…while。
让我们来看看for循环的实例,以下输出的不同字体大小的"基础教程网":
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% int fontSize; %> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>基础教程网(oldtoolbag.com)</title> </head> <body> <h2>For 循环示例</h2> <% for (fontSize = 1; fontSize <= 3; fontSize++){ %> <font color="green" size="<%= fontSize %>"> أساسيات التعليمات </font><br /> <%}%> </body> </html>
运行后得到以下结果:
将上例改用 while 循环来写:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% int fontSize=0; %> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>基础教程(oldtoolbag.com)</title> </head> <body> <h2>While 循环示例</h2> <%while ( fontSize <= 3){ %> <font color="green" size="<%= fontSize %>"> أساسيات التعليمات </font><br /> <%fontSize++;%> <%}%> </body> </html>
زيارة المتصفح، الناتج هو (fontSize يبدأ بـ 0، لذلك تم إدخال سطر إضافي):
معاملات JSP
يدعم JSP جميع معاملات الجبر واللوجيك لـ Java.
في الجدول أدناه قائمة بمعاملات JSP الشائعة، من أعلى إلى أسفل من حيث الأولوية:
التصنيف | المعاملات | الإرتباطية |
---|---|---|
النهاية | ( ) [] . (المعاملات النهاوية) | من اليسار إلى اليمين |
مفرد | ++ -- ! ~ | من اليمين إلى اليسار |
الضرب | * / % | من اليسار إلى اليمين |
الإضافية | + - | من اليسار إلى اليمين |
التحويل | >> >>> << | من اليسار إلى اليمين |
ال관계 | > >= < <= | من اليسار إلى اليمين |
المساواة/الفرق | == != | من اليسار إلى اليمين |
اللوجيك وال ثنائي | & | من اليسار إلى اليمين |
اللوجيك أو الثنائي المتباين | ^ | من اليسار إلى اليمين |
اللوجيك أو الثنائي | | | من اليسار إلى اليمين |
اللوجيك وال | && | من اليسار إلى اليمين |
اللوجيك أو | || | من اليسار إلى اليمين |
التحقق من الحالة | ?: | من اليمين إلى اليسار |
تعيين | = += -= *= /= %= >>= <<= &= ^= |= | من اليمين إلى اليسار |
الcomma | , | من اليسار إلى اليمين |
تعريف جملة JSP ببعض القيم التالية:
القيمة الحقيقي أو الزائف (boolean): true و false;
النوع الصحيح (int): مثل Java;
النوع الفلوت (float): مثل Java;
السلسلة (string): تبدأ وتنتهي بأحرف واحدة أو بيانات مزدوجة;
Null: null.