في هذه المقالة، سأقدم لك تقنية مرنة ومثيرة للاهتمام تعتمد على JSP، وهي JSTL، وهي اختصار لـ Java Server Pages Standard Tag Library، على الرغم من أن JSP أصبح شائعًا جدًا، إلا أن JSTL لا يزال يتمتع بشعبية كبيرة في التطبيقات المستندة إلى قاعدة بيانات SQL لا يزال التطوير البسيط والسريع للواجهة الأمامية والخلفية غير مستخدم على نطاق واسع. بمجرد أن تفهم JSTL، ستفهم مزاياه وستجد أنه تم استخدامه في العديد من الجوانب في عملك اليومي كمبرمج. أفترض هنا أنك على دراية بـ HTML، ويمكنك فهم عبارات SQL الأساسية وأساسيات JSP. لأن المحتوى التالي يتضمن هذه المعرفة.
JSTL عبارة عن مجموعة من مكتبات العلامات القياسية التي تدعم التكرار والشروط وتحليل مستندات XML والتدويل والقدرة على التفاعل مع قواعد البيانات باستخدام SQL. في البداية، تم تطوير وتحسين مواصفات JSTL بواسطة JSR #52 الذي نظمه JCP (برنامج عملية مجتمع Java). "يتحمل JCP المهمة المهمة المتمثلة في تطوير تقنية Java" - تعليقات الموقع الرسمي. باعتبارها منظمة مفتوحة، تستوعب JCP الأعضاء الرسميين والأعضاء غير الرسميين. وقد لعبت JCP دورًا رائدًا مهمًا في تشكيل وتطوير المواصفات الفنية لـ Java. تتضمن JSTL بشكل أساسي أربعة أجزاء أساسية من مكتبة العلامات: Core وXML والتدويل ودعم SQL. نظرًا لأن الغرض الرئيسي من هذه المقالة هو فهم JSTL بسرعة من خلال تطبيق جزء SQL، فإن هذه المقالة تقدم فقط بعض الوظائف الأساسية لمكتبات علامات Core وSQl.
هذه التكنولوجيا بسيطة وقوية بما يكفي للتنافس مع PHP وColdFusion ولديها القدرة الكافية على توسيع مجالات تطبيقات Java مشكلة. يتيح لك ذلك تجنب الاعتبارات المعتادة لتكامل XML واتصالات قاعدة البيانات عند إنشاء موقعك. كما ذكرت للتو، النقطة الأساسية في JSTL هي البساطة وسهولة الاستخدام. أي أيضًا أن JSTL مبني على JSP، مما يسمح لنا باستخدام جميع تقنيات Java التي نحتاج إلى تذكرها.
قبل أن نبدأ، نحتاج إلى معرفة كيفية تشغيل JSTL نظرًا لأنه يعتمد على تقنية JSP، فنحن بحاجة إلى حاوية يمكنها تجميع JSP لتشغيله. apache.org/tomcat/index.html ). إن كيفية تثبيت هذا المنتج تقع خارج نطاق هذه المقالة. ليس هناك شك في أن هذا المنتج البرمجي يحظى الآن بشعبية كبيرة، وهناك الكثير من الوثائق حول كيفية تثبيته. من المفترض هنا أنك قمت بتثبيت هذه الحاوية وتكوينها بنجاح، ما عليك سوى تثبيت الملفات المطلوبة لتشغيل JSTL، ويمكن تنزيلها من http://jakarta.apache.org/taglibs/doc/standard-doc/intro. html، لا تحتاج إلى تثبيته فعليًا، كل ما تحتاجه هو تضمين ملف .JAR في دليل WEB-INF/lib الخاص بالتطبيق الخاص بك، وسأشرح كيفية القيام بذلك
لاحقًا لتشغيل البرامج على قاعدة بيانات تدعم لغة SQL القياسية، يجب أن يكون لديك قاعدة بيانات مثبتة على جهاز الكمبيوتر الخاص بك. هناك أنواع عديدة من قواعد البيانات، وهنا اخترت MySql. سبب اختياري له هو أننا نحتاج أولاً إلى إظهار دور JSTL في بناء حقول تطبيق بسيطة وسريعة، وفي الوقت نفسه، يمكن مقارنتها بـ PHP+MySql، والتي كانت دائمًا هي المهيمنة في هذا النقطة الثانية هي أن MySql مجاني للتنزيل ويتضمن برنامج تشغيل JDBC لـ JAVA. باختصار، لاستخدام الأمثلة التالية، تحتاج إلى تنزيل خادم MYSQL ( http://www.mysql.com/products/ ). mysql/index.html ؛ برنامج تشغيل MySql Connector /J JDBC http://www.mysql.com/products/connector-j/index.html ومركز التحكم MySql http://www.mysql.com/products/connector- j/index.html )، يتيح لك هذا المنتج تشغيل وإدارة ملفات قاعدة بيانات Mysql بسهولة شديدة. بعد اكتمال جميع التنزيلات، تحتاج إلى تثبيت mysql ومركز التحكم mysql. بالإضافة إلى ذلك، يجب وضع برنامج تشغيل JDBC لـ mysql في الدليل /Web-INF/lib في تطبيق الويب الخاص بك.
قبل إنشاء رمز البرنامج، تحتاج إلى إنشاء وملء جداول قاعدة البيانات. هناك مقالات واسعة النطاق حول هذا الموضوع، وكيفية القيام بذلك خارج نطاق هذه المقالة. هنا أنصحك بـ MySQL Control Center، وهي أداة إدارة مرئية ذكرناها أعلاه، يمكنك استخدامها لإنشاء مستخدم اختباري لتشغيل البرنامج وقاعدة البيانات وإنشاء جدول اختبار وملء عدد من السجلات. فيما يتعلق بمعلمات بيئة التكوين مثل اسم تسجيل الدخول واسم قاعدة بيانات كلمة المرور، يجب أن تتذكرها وتحتاج إلى تطبيقها على الكود الخاص بنا لاحقًا.
أنت الآن جاهز لإنشاء أول تطبيق JSTL خاص بك، ويتطلب الأمر منا القيام بالأمور التالية:
يشتمل رمز البرنامج النموذجي بالكامل على ملفين، Hello.jsp وContinue.jsp،
ويسمح لك الملف Hello.jsp بإدخال اسم قاعدة البيانات ، اسم تسجيل الدخول، كلمة مرور تسجيل الدخول، اسم جدول قاعدة البيانات. continue.jsp: يقبل معلومات البيانات في Hello.jsp ويتصل بقاعدة البيانات، وينفذ طلب تحديد للجدول الموجود في قاعدة البيانات.
فيما يلي جميع ملفات التعليمات البرمجية لهذا النظام، وسأشرحها واحدًا تلو الآخر. هذه الرموز بسيطة للغاية. أما بالنسبة لبنية الكود، فأعتقد أنه يمكنك فهمها حتى بدون
شرحي
2: <أتش تي أم أل>
3: <الرأس>
4: <العنوان>مرحبا>/العنوان>
5:</الرأس>
6: <body bgcolor="#ffffff">
7: <h1> الرجاء إدخال كافة المعلومات الضرورية ثم انقر فوق موافق.</h1>
8: < طريقة النموذج = "post" action = "Continue.jsp" >
9: <br> تسجيل دخولك إلى قاعدة البيانات:
<نوع الإدخال = "نص" اسم = "تسجيل الدخول" الحجم = "15">
10: <br> كلمة المرور الخاصة بقاعدة البيانات:
<نوع الإدخال = "كلمة المرور" الاسم = "كلمة المرور" الحجم = "15">
11: <br> اسم قاعدة البيانات الخاصة بك:
<نوع الإدخال = "نص" اسم = "حجم قاعدة البيانات" = "15">
12: <br> جدول قاعدة البيانات الخاصة بك:
<نوع الإدخال = "نص" اسم = "جدول" حجم = "15">
13: <br><br><نوع الإدخال = "إرسال" الاسم = "إرسال" القيمة = "موافق" >
14: </نموذج>
15:</جسم>
16: </html>
(يرجى ملاحظة أن الأرقام الموجودة على الجانب الأيسر من النص هي فقط لتزويدك ببعض معلومات الترميز. ولا تحتاج إلى إدخالها في ملف التعليمات البرمجية الخاص بك.)
ما ورد أعلاه هو الكود المصدري للجميع Hello.jsp. من المثير للدهشة، أنه مجرد كود HTML خالص، وهو بهذه البساطة، وأعتقد أنه ليست هناك حاجة للتعليقات. السبب وراء تضمين مقتطفات التعليمات البرمجية هذه في المقالة هو توضيح دمج JSTL في مواقع HTML التي تحتاجها لتوسيع الوظائف الإضافية بسرعة، دعني أعرض لك الكود الكامل لـ continue.jsp، بعد قراءته، سيكون لديك بعض الفهم لـ JSTL.
1: <!--تابع.jsp-->
2: <%@ taglib prefix="c" uri=" http://java.sun.com/jstl/core " %>
3: <@ taglib prefix="sql" uri=" http://java.sun.com/jstl/sql " %>
4: <c:set var="h" value="localhost"/>
5: <c:set var="l" value="${param.login}"/>
6: <c:set var="p" value="${param.password}"/>
7: <c:set var="d" value="${param.database}"/>
8: <c:set var="t" value="${param.table}"/>
9: <أتش تي أم أل>
10: «الرأس»
11: <العنوان>متابعة>/العنوان>
12:</الرأس>
13: <body bgcolor="#ffffff">
14:<sql:setDataSource driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://${l}/${d}?user=${u}&password=${p}"/>
15:<sql:query var='result'>
16: اختر * من <c:out value="${t}"/>
17: </sql:استعلام>
18: <c:forEach var="row" items="${result.rowsByIndex}">
19: <c:out value="${row[0]}"/> <br>
20:</ج:لكل>
21:</جسم>
22: </html>
(يُرجى ملاحظة أن الأرقام الموجودة على يسار النص تهدف فقط إلى تزويدك ببعض معلومات الترميز، ولا تحتاج إلى إدخالها في ملف التعليمات البرمجية الخاص بك.)
هذا هو كل التعليمات البرمجية الخاصة بنا، أليس كذلك؟ انه عظيم؟ الآن دعونا نشرح وظيفة الرموز المذكورة أعلاه.
السطر 1 هو وصف تعليق HTML.
الأسطر 2-3 تُستخدم علامات JSP هذه للإشارة إلى مكتبات العلامات الخارجية، ولكي تكون أكثر دقة، فإنها تشير إلى أجزاء مكتبة علامات Core وSQL في مكتبة JSTL. قمنا بتعيين أسماء بادئات لهم حتى نتمكن من الوصول إلى طرق الوظائف في مكتبة العلامات المقدمة من خلال أسماء البادئات هذه.
السطر 4---8 تمامًا كما هو الحال مع تشغيل Hello.jsp فعليًا، فإنه سيطلب continue.jsp. بعد أن يحصل continue.jsp على الطلب، فإنه يحتاج إلى الحصول على عدة متغيرات من Hello.jsp وتحليلها. نستخدم هذه الطريقة ${param .YOUR_VAR}. في السطر الرابع <c:set tag، قم بتعيين المتغير ${h} على "localhost". سيحصل متغير السطر الخامس ${l} على المعلومات التي أدخلناها في حقل نص تسجيل الدخول في Hello.jsp، 6 و 7، ستحصل المتغيرات الموجودة في الأسطر الثمانية على التوالي على كلمة المرور واسم قاعدة البيانات واسم جدول البيانات الذي أدخله المستخدم في Hello.jsp.
الأسطر 9-13 هي بعض علامات HTML البسيطة التي غالبًا ما أستخدمها لإنشاء رؤوس صفحات HTML. الآن، تأتي الوظيفة المهمة.
السطر 14، نحاول إنشاء اتصال بقاعدة البيانات باستخدام برنامج تشغيل mysql (com.mysql.jdbc.Driver) الذي حصلنا عليه سابقًا، في عنوان URL، نحدد المعلمات المطلوبة لاتصال قاعدة البيانات، مثل اسم قاعدة البيانات، واسم المضيف، وتسجيل الدخول الاسم وكلمة المرور لتسجيل الدخول. وفقًا لذلك، يمكننا استخدام أي برنامج تشغيل JDBC آخر للاتصال بقاعدة البيانات المقابلة له. إذا أردنا الاتصال بقواعد بيانات SQL أخرى، فما عليك سوى تغيير عنوان URL هذا.
الأسطر 15-17 نقوم هنا بتنفيذ استعلام تحديد. يرجى الانتباه بشكل خاص إلى السطر 16. نستخدم دالة JSTL أخرى <c:out لإخراج اسم جدول البيانات الذي حصلنا عليه، ويمكننا هنا أيضًا استخدام أوامر SQL أخرى، مثل INSERT ، حذف، الخ. لتنفيذ طلبات الاستعلام هذه بدون قيم الإرجاع، تحتاج إلى استخدام الدالة <sql:update JSTL. يمكنه تنفيذها مباشرة تمامًا مثل <SQL:query، باستثناء أنه عند تنفيذها، ليست هناك حاجة لتحديد متغير نتيجة لتخزين النتائج التي يتم إرجاعها بواسطة تنفيذ العبارة.
الأسطر 18-20 الآن بعد أن قمنا بتنفيذ عبارة استعلام SELECT أعلاه، يجب أن نعرض نتائج الإرجاع الخاصة بها. <c:forEach هي دالة ذات دالة تكرارية في JSTL. عند تنفيذها، نعيد كل معلومات صف البيانات التي تم إرجاعها إلى المتغير ${row} حتى ${result.rowsByIndex}، ثم في السطر 19، نستخدم <c: out value="${row[0]}"/> لعرض القيمة في عمود البيانات الأول لكل صف بيانات تم إرجاعه. طالما أن جدول البيانات الخاص بك يحتوي على حقول، يمكنك الوصول إلى القيمة في أي حقل في جدول الطلب عن طريق تغيير الرقم في المتغير ${row}.
الأسطر 21-22 هي تذييلات HTML
أثناء عملية إنشاء تطبيقات JSTL بنفسك، ربما لم تكتشف مدى قوتها، ولكن يجب أن تكون قادرًا على إدراك بساطة وكفاءة وظائف JSTL. فقط تخيل وجود JSTL، ومدى سرعته هو دمج عمود الأخبار المستند إلى SQL، ومدى سهولة دمج موقع الويب الحالي الخاص بك.
جيد جدًا، الكود الخاص بنا سهل الفهم للغاية، حتى المبرمج غير المحترف، على سبيل المثال، يمكن للمصمم قراءته وفهمه وربما إجراء بعض التعديلات، على الأقل على تخطيط الصفحة.
كما ذكرنا في البداية، لكي يعمل كود JSTL الخاص بنا بشكل صحيح، نحتاج إلى تثبيت ملفات JAR في Mysql Connector/J، وبالطبع JSTL. نظرًا لأننا نستخدم حاوية Tomcat، وهي حاوية JSP، فأنت بحاجة إلى إنشاء المجلد الخاص بك ضمن دليل ملفات Tomcat Webapps، ووضع ملفات Hello.jsp وContinue.jsp في دليل الملف الذي قمت بإنشائه. كما تحتاج أيضًا إلى إنشاء مجلد يسمى WEB-. INF وقم بوضع ملف التكوين Web.xml فيه. ملف web.xml كما يلي:
<?xml version="1.0" encoding="UTF-8"?>.
<! تطبيق ويب DOCTYPE
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
" http://java.sun.com/dtd/web-app_2_3.dtd ">
<web-app />
بعد ذلك نحتاج إلى إنشاء دليل فرعي يسمى lib ضمن WEB-INF ووضع الملفات التالية فيه:
jstl.jar
saxpath.jar
Standard.jar
mysql-connector-java-3.0.9-stable-bin.jar (لاحظ أن هذا الاسم قد يتغير اعتمادًا على إصدار Mysql Connector/J الخاص بك)
كل هذه المعلومات يمكنك التحقق منها في دليل JSTL أو Tomcat، إذا كنت تريد أن تفهم بالضبط كيف ولماذا يعملون، يجب عليك قراءة هذه الأدلة. ومع ذلك، من أجل مساعدتك في إتقان العمليات الأساسية لـ JSTL بسرعة، فقد قدمت المعرفة ذات الصلة.
إذا كنت تستخدم حاويات Jsp أخرى، فستحتاج إلى قراءة الأدلة ذات الصلة بها.
أود أن أشرح شيئًا آخر. هذه المقالة مجرد مقدمة أساسية لتقنية JSTL، وليست دليلًا كاملاً. تحتوي JSTL على العديد من استخدامات الوظائف الغنية بالميزات لمساعدتك على إكمال تطوير Jsp الخاص بك بطريقة بسيطة وسريعة. أوصي بقراءة بعض الوثائق الأكثر تفصيلاً حول وظائف JSTL وكيفية عملها مع JavaBeans أنها منصة التطوير التي كنت تنتظرها. من خلال قراءة هذه المقالة، يجب أن تكون قادرًا على إنشاء بعض تطبيقات الواجهة الأمامية والخلفية البسيطة استنادًا إلى قواعد بيانات SQL.