الانتقال إلى المحتوى

تشغيل ملفات الـServlets و JSP ( اين اضع ملفاتي )


احمد الجابري

Recommended Posts

هذا الموضوع يعتبر من اساسيات فهم تقنية الـweb applications لفهم البنية الاساسية لها والذي يعتبر مهم جداً لجعلها تعمل بشكل صحيح
لن اطيل كثيراً ولكن سأحاول ذكر الحاجة لهذا الموضوع ..

كثير منا استخدم او سمع عن JavaServer pages (JSP) والكثير ايضاً سمعوا عن Java Servlets ولكن لايعرف الفرق .
كل ماعليكم الان فهمه ان اي ملف jsp لكي يعمل لابد ان يتحول الى Servlet والذي يقوم بتحويله هو الـweb server ( tomcat )
وان ملف jsp ينتهي بـ .jsp و ملفات الـservelt تنتهي بـ .class
وكذلك يجب معرفة اين نضع هذه الملفات لنتمكن من تشغيلها ..

اولاً : تجهيز الـWeb Server للعمل ( تثبيت الـtomcat )
يجب عليك اولا ان تتاكد ان جميع الامور تعمل بشكل صحيح ولمعرفة طريقة تحميل وتشغيل الـtomcat راجع الموضوع التالي :
http://www.araboug.org/ib/index.php?showtopic=2274

ثانياً : اين اضع ملفاتي؟!! :angry:
يجب على مطور الـjsp و الـservelts ان يعرف اين يضع ملفاته حيث ان وضعها في غير مكانها الصحيح لن يمكنها من العمل .
تشترك كلا التقنيتين jsp و servlet في المجلد المسمى webapps والموجود على المجلد الرئيسي في الـtomcat
عند وصولك الى هذا المجلد من الافضل ان تنشيء مجلد مستقل لكل مشروع تحت مجلد webapps يحوي جميع الملفات الخاصة بذلك المشروع
لنفترض الان ان لديك مشروع اسمه myApps عندها قم بإنشاء مجلد اسمه myApps تحت مجلد webapps
الان يمكنك وضع ملفات الـjsp مباشرة تحت المجلد myApps فلنفرض مثلاً مثلاً يعني اني خاصمتك يوم
اسف اقصد انك قمت بوضع ملف اسمه hello.jsp تحت المجلد myApps عندها يمكنك تشغيله عن طريق الرابط هذا مع الاخذ بعين الاعتبار
وضع المنفذ ( port ) الصحيح والافتراضي هو 8080 للـtomcat كما ان الافتراضي للـiis والخاص بتشغيل ملفات asp هو 80
الان حاول تجربة الرابط التالي :
http://localhost:8080/myApps/hello.jsp
اذا ظهرت الصفحة فمعناها ان كل شيء على مايرام .. وان حدث خطأ ارجوا ذكره لنحاول حله سوياً .

الان بالنسبة لملفات الـservlets يجب عليك انشاء مجلدين اخرين ..
الاول هو المجلد WEB-INF و يجب انشائه تحت المجلد myApps مباشرة
والثاني هو المجلد classes و يجب انشائه ووضعه تحت مجلد WEB-INF ( يجب مراعاة اسماء الملفات والمجلدات من ناحية الحالة ( Caps ))
الان قم بوضع ملفات الـservlets التي قمت بإنشائها وضعها تحت المجلد classes
الان سيكون لديك بنية مجلدات كالتالي :

01fig04.gif

الان بقيت خطوة اخيرة وهي انشاء ملف الـweb.xml وهو ما يسمى بـdeployment descriptor
هذه الملف اختياري ولكن له اهمية كبرى في وصف الـservlets للـtomcat و انشائه سهل جدا ويجب وضعه مباشرة تحت المجلد WEB-INF
وهذا هو الملف المصدر لأبسط web.xml يحتوي servlet واحدة فقط .

<?xml version="1.0" encoding="ISO-8859-1"?> 
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> 
<web-app> 
<servlet>
  <servlet-name>Testing</servlet-name> 
  <servlet-class>TestingServlet</servlet-class> 
</servlet> 
</web-app>


قم بحفظ بتغيير القيم بين الـtags وخصوصاً ما بين الـservlet-class ليطابق اسم ملف الـclass الذي لديك بدون كتابة الامتداد
فمثلاً لو كان ملف الـservlets لديك هو myServlet.class فاكتب فقط myServlet
ويمكنك اختيار اسم لذلك الـservlet يمكنك من الوصول له عن طريق الـtags <servlet-name>
قم بحفظ الملف تحت اسم web.xml وضعه كما قلنا في السابق تحت الملف WEB-INF
الان لتشغيل الـservlet عليك كتابة العنوان التالي
http://localhost:8080/myApp/servlet/Testing.
لاحظ ان Testing في الاخير هي القيمة التي كتبناها في الـtag المسمى <servlet-name>Testing</servlet-name>

هذا كل الكلام ..

رابط هذا التعليق
شارك

  • بعد 1 شهر...
  • بعد 8 شهور...
  • بعد 2 شهور...
  • بعد 3 شهور...

اخي احمد أنت ذكرت
---------------
الان قم بوضع ملفات الـservlets التي قمت بإنشائها وضعها تحت المجلد classes
-------------------
معليش تحملني شوي :D
هل ملفات السيرفلت أنا اللي أنشأها ؟ وكيف أنشأها ؟
أنا فهمت أنه إذا شغلت ملفات الـJSP ينتج عن ذلك ملفات بامتداد class
وضح لي بارك الله فيك .

رابط هذا التعليق
شارك

ملفات السيرفلت لما تعمل لها compile ينتج عنها ملفات من نوع classes
اما jsp يقوم تومكات بتحويلها الى سيرفلت ضمنياً بدون ان يكون لك دخل في العملية .

رابط هذا التعليق
شارك

  • بعد 2 أسابيع...

iam installing tomcat 5.0.28

and jdk1.4

and defining enviroment variable

JAVA_HOME

CATALINA_HOME

CLASSPATH

PATH

then iam create Hello.jsp in C:\tomcat5.0\webapps\myApps

but it doesnot work
!!
Then
iam copy the folder WEB-INF in the jsp-examples and paste it in C:\tomcat5.0\webapps\myApps

Then the jsp files work

now i don't have a problem with jsp files

///////////////

but when am want to create a servlet
i have the notepad file with .java extension
and i don't have any jdk 1.4 IDE

i have netbeans ( jdk1.5) , i don't know how to compile without IDE

iam agnore this problem and create my classes file with jdk1.5

i follow your way but it doesn't work

i can't create two folder WEB-INF in same directory

what is the solution ?



iam sorry to writing in english because am in the company


Thanks alot

:)

رابط هذا التعليق
شارك

اذا انت عملت Compiling بواسطة JDK1.5
تأكد ان البرنامج يحتاج لكي يعمل ان يكون تشغيله من خلال جافا 1.5 او اعلى
باختصار خلي الـ JAVA_HOME يؤشر الى JDK1.5

رابط هذا التعليق
شارك

اخي احمد اشتغل ملفات جي اس بي على jdk1.5 مافي مشاكل

بس تظل مشكلة المجلد WEB-INF

اذا سويت مجلد WEB-INF جديد ماراح تشتغل ملفات جي اس بي

واذا ماسويته ماقدر أحط ملفات السيرفلت .class .java

حاولت اني احط ملفات السيرفلت في المجلد classes داخل مجلد WEB-INF الحالي ، لكن ماشتغل معي

اتمنى تحللي هالمشكله

رابط هذا التعليق
شارك

راجع صورة بنية المجلدات والملفات في الاعلى ..

هل هي مشابهه ..
وماذا عن ملف web.xml اين وضعته ؟

رابط هذا التعليق
شارك

  • بعد 1 شهر...

السلام عليكم ورحمة الله وبركاته

حاولت تشغيل servlet بسيط باتباع الخطوات المشروحة في هذا الدرس ولم انجح في ذلك.

الملف المرفق هو محاولتي في التطبيق

myApps.zip

رابط هذا التعليق
شارك

هلا ابو سعد .. شفت الملف اللي ارفقته .. وفيه عندك مشكلة بسيطة و هي انك ماسويت Complie لملف TestingServlet.java المفروض في المجلد Classes تكون جميع الملفات من نوع .class

رابط هذا التعليق
شارك

الخطأ غير واضح .. لاادري هل هو خطأ اثناء Compiling ام خطا اثناء التنفيذ ..
ثانياً حاول ان تعمل Compiling بواسطة IDE مثل JDeveloper او غيره .

من واقع الخبرة رسائل الاخطاء المجنونة والكثيرة كالتي ظهرت عادة يكون سببها شي بسيط جداً .. علامة ; او قوس :(

رابط هذا التعليق
شارك

  • بعد 2 شهور...

يا أستاذ أحمد
حضرتك قلت تنزل tomcat لكي تصبح في بيئة webserver . ماذا لوكان الجهاز الذي تريد أن تحمل علية tomcat محمل علية أصلا oracle application server لأنه في الأصل بعد مانزلت tomcat أعطاني صفحة الأبليكشن سرفر . ولماذا لا نستخدم الجافا التي يتم تحميلها مع oracle devlepoer suite واذا كان ممكن استخدامها فكيف يمكن تهيئها للعمل
جزاك الله خيرا

رابط هذا التعليق
شارك

بالنسبة لعملية الDeployment الى Oracle Application Server
تختلف قليلاً و تقودنا الى مواضيع متشعبه في الOAS نفسه .

على العموم اذا كنت تريد عمليات Deploy ناجحة الى OAS فالافضل ان تستخدم JDeveloper عند انشاء تطبيقك .
وتعرفه في قسم Applicatin Servers .
بعد ذلك من ملف web.xml يمكنك إنشاء ملف Deploy Descriptor بواسطة الضغط باليمين على الملف .
بعد ذلك سيظهر لديك ملف امتداده deploy ..
اضغط عليه كمان باليمين و ستجد Deploy to .. واختر الapplication server الذي عرفته .
وهذي الطريقة ايضاً تعمل مع تومكات و مع jrun وغيره .

لكن في هذا الموضوع كنا نقصد التبسيط .
بالتوفيق .

رابط هذا التعليق
شارك

  • بعد 7 شهور...
  • بعد 6 شهور...

اخي الكريم اشكرك من كل قلبي على هذا الدرس الممتع

وارجو من الله ان يجزاك عنا كل الجزاء ويبارك فيك وينفع بك دنيا واخره ....

امر اخر ارجو منك التفضل علي به الا وهو ان الرابط للـ توم كات http://www.araboug.org/ib/index.php?showtopic=2274 لا يعمل فهل تساعدني في ذلك بارك الله فيك...

اخوك
azooz_ksa

رابط هذا التعليق
شارك

  • بعد 4 شهور...
  • بعد 3 شهور...

هذا برنامج التومكات 5
http://www.coreservlets.com/Apache-Tomcat-...econfigured.zip

يجب أن تركبه على السي مباشرة
C:\apache-tomcat-5.5.17

أرجو أن أكون أفدتك

تم تعديل بواسطة return0
رابط هذا التعليق
شارك

  • بعد 2 شهور...

السلام عليكم ورحمة الله وبركاته
عندي سؤال لو سمحتم
ازاى من على ال jsp/servlet لما اجى افتح صفحة sign in يدخلنى على اسمى مباشرتا اى كيفية جعل ال server يتذكر ال client لما يفتح صفحة ال sign in او لما يفتح الصفحة الافتتاحية للموقع وشكرا

رابط هذا التعليق
شارك

  • بعد 10 شهور...

اقتباس:بصو انا معرفش اشتغل مع البرامج دي

انا نزلته وعاملتله سيت أب

والكمبيوتر عمل ريسترت

بعد كده لقيته بره على الديسك توب

هو كده بقى بيشتغل لوحده

ولا انا ادوس عليه مرتين واعمل ايه بالظبط

وضحولي يا جماعه
ده قريب جدا على الكاسبر

انت لو عمل سكان وقفلتو هيفضل شغال بس مش ظاهر عندك

ومبيتقفلش غير لما تعمل stop

دمت بود

رابط هذا التعليق
شارك

شكرا للاخ العزيز أحمد الجابري على الموضوع وعندي مشكلة ارجو ان تساعدني بها :

وهي اني قمت بكل الخطوات الموجودة اعلاه ولكن .class file لا يعمل معي عندما اضعه في الملفtest\WEB-INF\classes\ مرفقا الخطأ عند استدعاء السيرفلت من البراوزر. وهذا الخطأ ينتج سواء بوجود ال web.xml او بعدم وجوده .

علما بأني عندما وضعت class file في ملف examples\WEB-INF\classes الموجود في التوم كات فانه يعمل بشكل صحيح ويتم تنفيذ السيرفلت . وشكرا



http://localhost:8080/test/servlet/Testing

HTTP Status 404 - /test/servlet/Testing

--------------------------------------------------------------------------------

type Status report

message /test/servlet/Testing

description The requested resource (/test/servlet/Testing) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/4.1.34

رابط هذا التعليق
شارك

  • بعد 7 شهور...

شكراً لك لاني بالفعل اريد معرفة الارتباط بين الجافا والاوراكل, وان شاءالله تواصل هذه الدروس , لان اكثر مشاكل اعانيها ناتجة من الجافا , وانا مبتدئة في الاوراكل , وأأمل ان الاقي الحلول من هذه الدروس ان شاءالله .
خالص الشكر والتقدير

رابط هذا التعليق
شارك

  • بعد 1 سنة...

جزاك الله خيرا
اللينك ده مفيد جدا وهو channel على اليوتيوب وإن شاء الله حينزل فيها حاجات كتيرة أخرى فى اللينوكس وORACLE DBA وال Oracle ERP وال ADF وال WORK FLOW
والموجود حاليا فيديوهات لتعليم الجافا و ORACLE DEVELOPER يوجد فيه أكثر من 50 فيديو بصوت المهندس محمد ياسين جزاه الله خيرا
http://www.youtube.com/user/AppsStuff/videos?view=pl
والله الموفق

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية