Weitere ähnliche Inhalte
Ähnlich wie الدرس الثالث عشر (20)
Mehr von Anas Aloklah (10)
الدرس الثالث عشر
- 1. الرحيم الرحمن هللا بسم
الـ عناصر بعض بأخذ نبدأ سوف اليومJSP
الدرس هذا في سنأخذه ما:
الـ في الجافا كود استدعاءJSP
شرحعنصرJSP expressions
عنصر شرحJSP scriptlets
عنصر شرحJSP declarations
مسبقا المعرفة المتغيرات
التدريب أجل من وجبات
الجافا كود استدعاءالـ فيJSP
الجافا كود استدعاء أجل منواستخدامالـ في الديناميكي التوليدJSPوهذا استخدمها يمكنك طرق عدة هناك
وهذا استخدامه عليك الذي النهج تحديد تستطيع أن األهم ولكن مشروعة كلها السفلي الشكل الموضح الطرق
ال المشاريع حال في تعقيده ومدا مشروع طبيعة على يتوقفبسيطةولكن جيد سيكون المباشر األسلوب فأن
استخدام فهنا المشاريع تتعقد عندمااألسلوبفي وصعوبة والتطوير الصيانة في عبئ يشكل سوف المباشر
العمل المشروع لتطوير عمل فريق تشكيل.المباشر األسلوب ضمن نعمل وسوف الدرس هذا وفي.
أو الصغيرة التطبيقات
صغير عمل فريق
التطبيقاتالمعقدةأو
كبير عمل فريق
جافا كود استدعاءالمباشر(directly).تعليمات كافة وضع فيها ويمكنك
الـ صفحة في الجافاJSP.
جافا كود استدعاءمباشر الغير(indirectly).صفوف بتطوير تتعلق
الـ الصفحة عن منفصلة مساعدةJSP.تعليمات أدراج تستطيع وهنا
جافاالـ صفحات فيJSPالصفوف منالمساعدة الصفوف خالل.
الـ التاغ استخدامActionبـ يسمى ما أوbeans.بينية وهيمطورة
يكون واستدعائها خاص بشكلjsp:useBean, jsp:getProperty,
الطرق من وغيرهاوسنالمقبلة الدروس في تعلمها.
بنية استخدامMVC.السرفلت من كل نستعمل سوف هناوالـJSPمع
في العمل كيفية وسنأخذ بعضMVCالمقبلة الدروس في.
اللغة التعبير عناصر استخدام.أجل من مختصرة عبارات نستخدم هنا
عادا وهذه الناتج الغرض خصائص على و المورد على الحصول
تستخدممع باالشتراكالـbeansالـ وMVC.بعد فيما سنتعلمها
تاغات استخدامالخاصة.تالـ في بك الخاصة تاغات بناء ستطيعJSPوهذا
الدورة هذا من المتقدم القسم في نأخذه سوف
الـ عناصر نشرح سوف الدرس هذا فيscriptingالمباشرة طرق من وهي عناصر ثالث إلى تنقسم وهي.
الـ عناصر أنوعscriptingبالـJSP
ن سوف وبعدها الـ لعناصر بسيط شرح نذكر سوف اآلنلوحده عنصر كل شرح.
الثالثة العناصر:
1.التعبير(Expressions:)الشكل بهذا تكتب وهي<%Java Expression=%>القيمة حساب ويتم
قيمتها وطباعة العبارة هذا فيالـ في توضع وهيoutputلسرفلت الصفحة ترجمة يتم عندما.
2.السكربتلت(Scriptlets:)الشكل بهذا تكتب وهي<% Java Code %>البيانات معالجة يتم فيها
الطريقة ضمن توضع وهي والطلباتjspServiceالتيالطريقة السرفلت في يقابلهاservice.
3.اإلعالن أو التصريح(Declarations:)الشكل بهذا تكتب وهي<%! Field/Method Declaration %>
د صفوف أو طرق أو المتحوالت عن التصريح أجل من تستخدم وهيوكل الصفحة داخل أي اخلية
عن الصف داخل في تحشر التصريحات هذادسرفلت إلى الصفحة تحويل.
- 2. عنصر شرحJSP Expressions
الـ عنصر يستخدمExpressionsالـ صفحة في مباشر بشكل قيمة طباعة أجل منJSPالشكل بهذا تكتب وهي
<%Java Expression%=>ال تقيم يتم فأنه الحقيقة وفيسلسلة إلى وتحويله التاغ هذا ضمن الموجودة عبارة
محارف(String)الـ صفحة بطلب تقوم عندما األجراء هذا يتم الصفحة في حشرها ويتمJSPأردت إذا فمثال
الحالي والوقت التاريخ طباعةالصفحة طلب عند.
Current time: <%= new java.util.Date() %>
المتغيراتمسبقا معرفة
هناالـ في مسبقا معرفة متغيرات كJSPبهذه الخاصة المكتبات تضمين أو لتعريفها بحجة لست وأنت
من أغراض عن عبارة هي المتغيرات وهذه الدرس هذه في المتغيرات هذه عن وسنتحدث المتغيرات
بعد ما في كلها واشرحها أهمها اآلن وسأذكر السرفلت صفوف.
المتغيرات هذه أهم:
request:وهالصف من غرض وHttpServletRequest.
response:الصف من غرض وهوHttpServletResponse.
session:الصف من غرض وهوHttpSession.
out:العميل إلى الخرج إرسال ويتم الطباعة أجل من تستخدم.
application:الصف من غرض وهوServletContext.البيانات بنية من النوع وهذا
ف مشترك يكونالـ والصفحات السرفلتات جميع يJSPجيد وهو الويب تطبيق كامل في
بالـ متعلقة ألنه المقبلة الدروس في هذا وسنناقش البيانات ومشاركة تخزين أجل منbeans
والـMVC.
المثال سبيل علىالمضيف اسم طباعة:
Your hostname: <%= request.getRemoteHost() %>
الـ عنصر كتابةExpressionsأخرى بطريقة(جملXML)
الـ عنصر كتابة يمكنكExpressionsالـ تاغ عبر أخرى بطريقةActionالتالي بشكل وتكتب:
<jsp:expression>Java Expression</jsp:expression>
إصدار في2.2لـ إصدارت من لحقه وماJSPال ولكن الجمل من النوع هذا تدعم كانت السرفر
يمكنكاستخدامالجمل من النوع هذا(جملXML)معالقياسية الجمل نظام(<...%=%>)نفس في
الصفحة.
العنصر على مثالExpressions
و والوقت التاريخ يطبع مثالوالسرفر للجلسة دي األيومعامل(بارمتر)تجريبي.
الـ ملف مالحظةJSPملجلد في يوضع الclassesتوصي أي لوضع داعي هناك وليسالـ لملف ف
JSPملف فيweb.xmlالـ الملف بوضع قم فقطJSPالتطبيق مجلد في.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>JSP Expressions</TITLE>
<META NAME="keywords" CONTENT="JSP,expressions,JavaServer Pages,servlets">
<META NAME="description" CONTENT="A quick example of JSP expressions.">
<LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css">
</HEAD>
<BODY>
<H2>JSP Expressions</H2>
<UL>
<LI>Current time: <%= new java.util.Date() %>
<LI>Server: <%= application.getServerInfo() %>
<LI>Session ID: <%= session.getId() %>
<LI>The <CODE>testParam</CODE> form parameter:<%= request.getParameter("testParam") %>
</UL>
</BODY></HTML>
- 3. والـ السرفلت بين تطبيق كتابة مقارنةJSP
بالـ التطبيق نفس نكتب و بالسرفلت تطبيق نكتب سوف اآلنJSPتطبيق هو سنكتبه الذي التطبيق
معامالت ثالث طباعة وهو بسيط(بارمترات)كتبن قد مثال وهوالثالث الدرس في ه.
بالـ ولكن المثال نفس نكتب اآلنJSP
الـ ملفHTMLقي منه ترسل الذيمصفحة أو السرفلت إلىJSP
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ThreeParams extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "Reading Three Request Parameters";
out.println("<HTML>n" +"<HEAD><TITLE>" + title + "</TITLE></HEAD>n" +
"<BODY BGCOLOR="#FDF5E6">n" +"<H1 ALIGN="CENTER">" + title + "</H1>n" +
"<UL>n" +" <LI><B>param1</B>: "+ request.getParameter("param1") +
"n" +" <LI><B>param2</B>: "+ request.getParameter("param2") +
"n" +" <LI><B>param3</B>: "+ request.getParameter("param3") +
"n" +"</UL>n" + "</BODY></HTML>");
}
}
<HTML>
<HEAD>
<TITLE>Reading Three Request Parameters</TITLE>
</HEAD>
<BODY>
<H1>Reading Three Request Parameters</H1>
<UL>
<LI><B>param1</B>: <%= request.getParameter("param1") %>
<LI><B>param2</B>: <%= request.getParameter("param2") %>
<LI><B>param3</B>: <%= request.getParameter("param3") %>
</UL>
</BODY></HTML>
<HTML><HEAD><TITLE>Collecting Three Parameters</TITLE></HEAD>
<BODY BGCOLOR="#FDF5E6">
<H1 ALIGN="CENTER">Collecting Three Parameters</H1>
Send params to servlet<BR> <FORM ACTION="ThreeParams">
First Parameter: <INPUT TYPE="TEXT" NAME="param1"><BR>
Second Parameter: <INPUT TYPE="TEXT" NAME="param2"><BR>
Third Parameter: <INPUT TYPE="TEXT" NAME="param3"><BR>
<CENTER><INPUT TYPE="SUBMIT"></CENTER><BR>
</FORM>
Send params to JSP page<BR> <FORM ACTION="ThreeParams.jsp">
First Parameter: <INPUT TYPE="TEXT" NAME="param1"><BR>
Second Parameter: <INPUT TYPE="TEXT" NAME="param2"><BR>
Third Parameter: <INPUT TYPE="TEXT" NAME="param3"><BR>
<CENTER><INPUT TYPE="SUBMIT"></CENTER>
</FORM>
</BODY></HTML>
- 4. عنصر شرحJSP scriptlet
الطريقة في يحشر سوف العنصر هذا داخل في تكتبه ما كل فأن معين جافا كود بتنفيذ يقوم العنصر هذا
serviceالـ تحويل يتم عندماJSPكتالي العنصر هذا كتابة وطريقة سرفلت إلى:
<% Java Code %>
السابق في مختصر بشكل ذكرنها التي مسبقا المعرفة المتغيرات إلى الوصول يستطيع العنصر هذا أن كمافمثال
الغرض خالل من الصفحة في ما شيء طباعة أردت إذاoutالعملي فتكون مسبقا المعرفة المتغيرات أحد وهوة
يلي كما:
<%
String queryData = request.getQueryString();
out.println("Attached GET data: " + queryData);
%>
العنصر من كل مزج خالل من وهي أسهل بطريقة الشيء نفس عمل تستطيع السابق المثال مثل فيscriptlet
عنصر وExpressionاألتي النحو على وتكتبها:
<% String queryData = request.getQueryString(); %>
Attached GET data: <%= queryData %>
عنصر استخدام عدم السابق المثال في وتستطيعscriptletعنصر فقط وتستخدمexpressionوتكتبهكذا:
Attached GET data: <%= request.getQueryString() %>
عنصر استخدام بمكانك فإنه عام بشكلscriptletبوسطة بها القيام يمكنك ال التي المهام من العديد تنفيذ في
العنصرExpressionالبيانات قواعد مع وتعامل الحالة ورموز الهيدر مع التاعامل هي المهام هذه ومن لوحده
العميل إلى الصفحة أرسال أردت إذا فمثال األمور من وغيرها والتكرارية الشرطية أوامر وتنفيذشكل على
صفحة وليس ورد صفحةHTMLبطريقة المحتوى تعين إلى بحاجة فإنكsetContentTypeأردت فإذا
عنصر بواسطة هذا تنفيذscriptletيلي كما يكون فإنه:
<% response.setContentType("application/msword"); %>
تعين المهم منللعم شيء أي أرسال قبل الهيدر وتعين المحتوى نوععنصر استخدام فاألفضل هذا أجل من يل
Directiveهللا شاء أن القادم الدرس في عنه نتكلم سوف العنصر وهذا األمور هذه مثل في.
الـ عنصر كتابةscriptletأخرى بطريقة(جملXML)
الـ عنصر كتابة يمكنكscriptletالـ تاغ عبر أخرى بطريقةActionالتالي بشكل وتكتب:
<jsp:scriptlet>Java Code</jsp:scriptlet>
إصدار في2.2لـ إصدارت من لحقه وماJSPال ولكن الجمل من النوع هذا تدعم كانت السرفر
الجمل من النوع هذا استخدام يمكنك(جملXML)القياسية الجمل نظام مع(<%...%>)نفس في
الصفحة.جمل أن تعرف أن وعليكXMLاألحرف لحالة حساسة
مثالعالعنصر لىscriptlet
معامل نأخذ سوف المثال هذا في(بارمتر)صفحة منHTMLلتكون قيمته نأخذ سوف المعامل وبهذا
الـ الصفحة لخلفية لونJSPهما عنصران نستخدم سوف وهناExpressionوscriptletويتم
تاغ في اللون قيم تعينBodyمعامل فيbgColorهكذا وتكتبها:
<BODY BGCOLOR="<%= request.getParameter("bgColor") %>">
المثال كتابة إلى اآلن:
<HTML>
<HEAD>
<TITLE>Color Testing</TITLE>
</HEAD>
<%
String bgColor = request.getParameter("bgColor");
if ((bgColor == null) || (bgColor.trim().equals(""))) {
bgColor = "WHITE";
}
%>
<BODY BGCOLOR="<%= bgColor %>">
<H2 ALIGN="CENTER">Testing a Background of "<%= bgColor %>"</H2>
</BODY></HTML>
- 5. عنصر استخدامscriptletالـ في الشرطية العبارات فيJSP
الشرطية العبارة نستخدم سوف المثال هذا في بسيط مثال سنكتب اآلنifالعنصر داخل فيscriptlet
هذا وفيالعشوائ التابع نستخدم سوف المثاليطبع النصف من أكبر النتيجة كان بحال يnice day
يطبع فسوف إال وlousy dayالشرطية العبارة باستخدام وذالكifالمثال إلى اآلن:
التكرارية العبارات أجل من أيضا فعلها تستطيع السابقة العملية أن.
عنصر شرحJSP Declarations
يستخدمالعنصر هذاالتصريح أجل منداخلية صفوف أو طرق أو المتحوالت عنفيهذا وكل الصفحة داخل
عن الصف داخل في تحشر التصريحاتدسرفلت إلى الصفحة تحويل.الشكل بهذا العصر هذا ويكتب:
<%! Field or Method Definition %>
عنصر مع مقترن العنصر هذا نستخدم ما وعادة خرج توليد أجل من العنصر هذا يستخدم الscriptletأو
عنصرExpression.
مثل السرفلت حيات بدورة تتعلق التي الطرق في العنصر هذا استخدام عدم عليك تحذير(service, doGet
init,إلخ)إلى للوصول العنصر هذا استخدام إلى بحاجة لست وأنتserviceأوdoGetأوdoPost
إلنهالـ في خاصة أتوماتيكيا طريقة استعداء يتمJSPوهي السرفلت في العمل نفس لها_jspServiceكما
الـ حياة بدورة تتعلق التي مسح و التهيئة أجل من طرق هناك أنهJSPهي التهيئة وطريقة السرفلت في كما
jspInitهي التنظيف أو التدمر وطريقةjspDestroy.بعد فيما أوسع بشكل الموضوع هذا عن نتحدث ربما.
الـ عنصر كتابةDeclarationأخرى بطريقة(جملXML)
الـ عنصر كتابة يمكنكDeclarationالـ تاغ عبر أخرى بطريقةActionالتالي بشكل وتكتب:
<jsp:declaration>Field or Method Definition</jsp:declaration>
إصدار في2.2لـ إصدارت من لحقه وماJSPالجمل من النوع هذا تدعم كانت السرفرال ولكن
الجمل من النوع هذا استخدام يمكنك(جملXML)القياسية الجمل نظام مع(<...%!%>)نفس في
الصفحة.جمل أن تعرف أن وعليكXMLاألحرف لحالة حساسة.
مثالالعنصر علىDeclaration
هو المثالالسيرفر على الصفحة تحميل منذ للصفحة الوصول مرات عدد طباعة
بهذا نستخدم وسوفالعنصران المثالDeclarationو المتحول تعريف اجل منExpressionمن
القيمة طباعة أجل.
<HTML>
<HEAD>
<TITLE>Wish for the Day</TITLE>
</HEAD>
<BODY>
<% if (Math.random())<0.5) {%>
<H1>Have a <I>nice</I> day!</H1>
<%{else}%>
<H1>Have a <I>lousy</I> day!</H1>
<% } %>
</BODY></HTML>
<HTML>
<HEAD>
<TITLE>JSP Declarations</TITLE>
</HEAD>
<BODY>
<H1>JSP Declarations</H1>
<%! private int accessCount = 0; %>
<H2>Accesses to page since server reboot:
<%= ++accessCount %></H2>
</BODY></HTML>
- 6. مسبقا المعرفة المتغيرات
الـ في متغيرات هناكJSPأهميتها لكثرة نظرا مسبقا معرفةواستعمالهابسيط موجز سبق ما في ذكرنا وقد
الموضوع هذا نشرح سوف اآلن المتغيرات هذه من بعض عنبالتفصيل.
request:الصف من غرض هو المتغير هذاHttpServletRequestالغرض هذا لك ويسمح
بالوصولالصفحة طلب نمط وتحديد البارمترات إلى(get or post)الهيدر إلى الوصول وأيضا
السرفلت في عملنا التي األمور من وغيرها والكوكي.
response:من غرض هو المتغير هذاالصفHttpServletResponseعلى يقوم المتغير وهذا
بالطباعة الخاص غرض أنتاجoutهيدر يسمى بما المستعرض في هيدر الوضع تستطيع وأيضا
االستجابة(response headers)الحالة برموز التحكم تستطيع وأيضابه قمنا ما كل فكل وتستطيع
الغرض هذا في المتعلق الماضية الدروس في.
out:ا هذاالصف من غرض لمتغيرPrintWriterالعميل إلى الخرج إرسال هو المتغير هذا ومهمة
تريد ما بوضع وهي السرفلت في استخدمتها التي الطريقة بنفس الغرض هذا استخدام وتستطيع
عنصر داخل طباعتهscriptlets.
session:الصف من غرض هو المتغير هذاHttpSessionالـ وفيJSPأ يتم فإنههذا نشاء
ألي بشكل الغرض.الـ في الجلسات استخدام تعطيل اجل من وحيد استثناء هناك ولكنJSPعن وهو
عنصر طرقdirectiveنفس في استخدام طرقة عن وأما القادم الدرس في نشرحه سوف والذي
الجلسات عن كامل التاسع الدرس في وكان السرفلت في الطريقة.
application:غ المتغير هذاالصف من رضServletContextخالل من عليه الحصول ويتم
الطريقةgetServletContext.الـ و السرفلت وفيJSPالصف في بيانات تخزين يمكنك
ServletContextحالة أنشئ عن عوضا وذالكللمتغير.على الحصول أو القيم الوضع أجل ومن
الطريقتان خالل من ذلك القيمsetAttributeوgetAttributeالبيانات قيم مرتبط يكون وفيها
مميز باسم(key)للحصولالجلسات مع التعامل في كما ما قيمة وضع و.تخزين بين فرق هناك
الصف في البيانات تخزين بين أو المتغير من حالة في البياناتServletContextحال في ألنه
الصف في تخزينهServletContextمشارك يمكنك فإنهةالبفي ياناتكلالسرفلتاتوالـ صفحات
JSPالمخزنة البيانات فإنه الصف من حالة في البيانات التخزين تم أنه حينما في الويب تطبيق كل في
الـ صفحة أو السرفلت نفس في فقط تستخدمهاJSP.
config:الصف من غرض هو المتغير هذاServletConfigأجل من الغرض هذا ويستخدم
معا قراءةمشابه هنا واألمر السرفلت حياة دورة في الموضوع هذا عن تحدثنا وقد التهيئة مالت
الـ صفحة تهيئ التي الطريقة في فنستخدمهJSPوهيjspInit.
pageContext:الـJSPالصف تستدعيPageContextمن عدة إلى الوصول أجل من وهي
الصفحة سمات.والصفPageContextومنها طرق فيهgetRequestوgetResponse
getOutوgetSessionوإلخالصف الغرض قيم بتخزين يقوم المتغير هذا وPageContext
الحالية بالصفحة المرتبط.
page:كثيرا مفيد ليس المتغير هذا.
التدريب أجل من وجبات
إلى السابقة الدروس في أخذناه ما كل بتحويل تقوم أن هو الدرس هذا في الواجباتنمطJSP
البيانات قواعد مع والتعامل الجلسات و والكوكي البارمترات مع التعامل من كثير أشاء أخذناه وما
هللا شاء أن القادم الدرس في اللقاء إلى