English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

قواعد جملة JSP

سيتم تقديم تعريف بسيط للغة الأساسية في هذا الفصل.

جملة البرنامج

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

نموذج جملة البرنامج:

<% قطعة من الكود %>

أو يمكنك أيضًا كتابة جملة 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، يجب أن تُعلن هذه المتغيرات والطرق قبل استخدامها.

نموذج جملة إعلان 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 ... %>                إدخال تعريف مكتبة العلامات، يمكن أن تكون علامات مخصصة

    تسمية وحدات JSP

استخدام جافا سكربت لغة 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 الخفية

يدعم JSP تسعة متغيرات معينة مسبقًا، تُعرف أيضًا بكائنات الخفية. يوجد في الجدول أدناه مقتضى هذه الكائنات الخفية التسعة:

كائنوصف
                requestHttpServletRequestمثال على فئة
                responseHttpServletResponseمثال على فئة
                outPrintWriterمثال على فئة، يستخدم لتحويل النتائج إلى صفحة الويب
                sessionHttpSessionمثال على فئة
                applicationServletContextمثال على فئة، يتعلق بالسياق التطبيقي
                configServletConfigمثال على فئة
                pageContextPageContextمثال على فئة، يوفر الوصول إلى جميع الكائنات في صفحة 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

تعريف جملة JSP ببعض القيم التالية:

  •             القيمة الحقيقي أو الزائف (boolean): true و false;

  •             النوع الصحيح (int): مثل Java;

  •             النوع الفلوت (float): مثل Java;

  •             السلسلة (string): تبدأ وتنتهي بأحرف واحدة أو بيانات مزدوجة;

  •             Null: null.