الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

طريقة تهيئة المخدم Tomcat و تشغيل صفحات Jsp & Servlet عليـ&#

رائج
بدأه زائر في 12 سبتمبر 2006 · 43 رد · 27,413 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

المتطلبات :

1- تحميل آخر نسخة tomcat5.5.17

http://tomcat.apache.org/download-55.cgi

2- تحميل JDK1.5

http://java.sun.com/javase/downloads/index.jsp

لماذا نحتاج tomcat ؟

لأن servlet لاتستطيع العمل على كمبيوتر عادي فهي مصممه على أن تعمل في سيرفر ولذلك لابد أن تحتاج إلى مايسمى بـ servlet engine وأشهرها طبعاًَ apache tomcat

طريقة العمل :

1- بعد ماتحمل tomcat5.5.17 فك ضغط الملف على السي درايف ، راح ينتج مجلد وحيد اسمه Jakarta-tomcat5.5.17

غير اسمه إلى tomcat وبذلك يكون مسار السيرفر عندك c:\tomcat

2 - اذهب إلى هذا المسار :

Start->Right Click on My Computer -> Properties -> Advance ->Enviroment Variable

في خانة الSystem Variable اضغط new

انشئ متغير بإسم JAVA_HOME وقيمته هي مكان JDK في جهازك .

وغالباً يكون :

C:\Program Files \ Java \ jdk1.5.0

اضغط OK ثلاث مرات للخروج من جميع النوافذ .

1-انسخ الملف servlet-api.jar

في مثالنا تجد الملف في هذا المسـار :

 c:\tomcat\common\lib

انسخه إلى

  C:\Program Files \ Java \ jdk1.5.0 \jre\lib\ext

في حالة عدم نسخ هذا الملف يظهر الخطأ الشائع javax.servlet package does not exist

4- اذهب إلى c:\tomcat\conf وحرر الملف context.xml

ثاني سطر تجده هو

<Context>

غيره إلى

<Context reloadable="true">

5- في نفس مسار الخطوه الرابع تجد ملف web.xml حرره ومن ثم ابحث عن هذا الكود :

- <servlet>
  <servlet-name>invoker</servlet-name> 
  <servlet-class>org.apache.catalina.servlets.InvokerServlet</servlet-class> 
- <init-param>
  <param-name>debug</param-name> 
  <param-value>0</param-value> 
  </init-param>
  <load-on-startup>2</load-on-startup> 
  </servlet>

واحذف علامة <!-- من فوقه وعلامة --> من تحته

ونفس الشئ على هذا الكود :

- <servlet-mapping>
  <servlet-name>invoker</servlet-name> 
  <url-pattern>/servlet/*</url-pattern> 
  </servlet-mapping>

احذف علامة <!-- من فوقه وعلامة --> من تحته

احفظ التعديلات واخرج من الملف .

6- اذهب إلى هذا المسـار:

C:\tomcat\webapps\ROOT\WEB-INF

وانشئ مجلد وسمـّـه classes ليكون مساره

C:\tomcat\webapps\ROOT\WEB-INF\classes

الآن انتهينا من اعدادت tomcat وبقي تشغيله .

اذهب إلى start->run->cmd then enter OK

استخدم الأمر cd & cd.. للوصول إلى مجلد c:\tomcat\bin

بعدها اكتب الأمر startup

ستظهر نافذة دوس اخرى وفي آخرها جمله مثل هذه باختلاف الارقام :

INFO : Server startup in 3110 ms

جميل الآن بقي شئ واحد وهو الدخول على السيرفر من البراوزر

تأكد من رقم البورت وذلك بالذهاب إلى الملف

c:\tomcat\conf\server.xml

وابحث عن هذه الجمله

Connector port="8080"

الآن اذهب إلى المستعرض واكتب

http://localhost:8080

8080 لابد أن يكون نفس الرقم الموجود بجانب Connector port في الملف server.xml

ستظهر شاشة الترحيب الرئيسيه المكتوب فيها

If you're seeing this page via a web browser, it means you've setup Tomcat successfully. Congratulations!

اذا لم تظهر وظهرلك شئ ثاني مثل شاشة ترحيب Oracle أو Sun Application Server أو WEbsphere

فيجب عليك تحرر ملف server وتغير رقم إلى 18080 مثلاً أو إلى أي رقم آخر .

وبعدها تكتب في شاشة الدوس في المسار c:\tomcat\bin الأمر shutdown لإقفال السيرفر ومن ثم startup لتشغيله

حيث أي تعديل في المجلد conf يحتاج إلى اعادة تشغيل tromcat

ثم اذهب إلى هذا العنوان

http://localhost:18080

وبذلك يكون السيرفر شغال تمام في جهازك .

الآن طريقة تشغيل صفحات jsp & servlet

Servlet :

خذ هذا الكود

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;

public class HelloWorld2 extends HttpServlet
{
public void doGet(HttpServletRequest request , HttpServletResponse response )
throws IOException ,ServletException 
{
PrintWriter out=response.getWriter();
out.println("Hello, World ");
}
}

واحفظه في ملف باسم HelloWorld2.java

ثم قم بعمل compiling له وخذ ملف HelloWorld2.class واذهب به الى هذا المسـار

C:\tomcat5.5\webapps\ROOT\WEB-INF\classes

ثم اكتب هذا العنوان في البراوزر :

http://localhost:8080/servlet/HelloWorld2

سيظهر الناتج وهو كلمة Hello,World

JSP :

اذهب الى هذا المسار

 C:\tomcat5.5\webapps\ROOT

وانشئ مجلد سيكون محتوي جميع ملفات jsp وليكن jsp-root

افتح النوتباد واكتب الكود التالي :

<html>
<head>
<title> Hello World</title>
</head>
<body>
<h1>
<% out.println("Hello, World");
 %>
</h1>
</body>
</html>

واحفظه باسم HelloWorld.jsp داخل مجلد jsp-root

الآن اذهب إلى البراوزر واكتب العنوان http://localhost:8080/jsp-root/HelloWorld.jsp

وسترى النتيجه .

وبذلك نكون عملنا صفحات jsp & servlet على المخدم

والسلام عليكم :)

#2

سلمت يمناك ، اشتغل معي السيرفلت أخيرا

ثانكيوووو

11_03_06_12_48_57_1142110137Image(_66).jpg

#3

حياك الله يابو سعد

الشكر لله ثم لك على مساعدتك لي في أشياء كثيره

أبو سعد انت ماسويت صفحات servlet بمشروعك حق الشركه ؟

كلهن صفحات jsp ?

#4

الله يعافيك أخي عيسى

ولو تكرمت ممكن شرح لو بسيط للسيرفلت والحاجة إليه .

460.gif

#5

أهلا أخي المتميز

Servlet

هي كلاس جافا عادي يعمل على web server

لذلك فائدتها دائماً في الـDistributed Application التي تعتمد على مدخلات اليوزر

هدفها هو معالجه الطلبات المرسله من قبل اليوزر عن طريق المتغير HttpServletRequest

وحياتها كالتالي :

المستخدم يدخل معلومات عن طريق form في الصفحه ثم يضغط زر معين جميع المعلومات الضروريه تخزن في المتغير HttpServletRequest

بعدها يرسل الطلب إلى السيرفر

الServlet تستقبل هذا الطلب وتقوم بالعمل المطلوب مثل جملة select على قاعدة البيانات أو ماشابه

ثم تعمل generate للطلب وترسله على شكل HttpServletResponse

ثم تعرض البيانات على شكل صفحة HTML

#6

مشكور أخي عيسى على التوضيح ولكن أليس هذا يمكن عمله بالـjsp ؟

أنا كنت فاهم أن أي صفحة jsp يتم طلبها عن طريق المتصفح يتم إنشاء سيرفلت لها ؟!

معذرة تراني ماني فاهم فيها زين

شكرا لتحملك

مشكور أخي عيسى على التوضيح ولكن أليس هذا يمكن عمله بالـjsp ؟

أنا كنت فاهم أن أي صفحة jsp يتم طلبها عن طريق المتصفح يتم إنشاء سيرفلت لها ؟!

معذرة تراني ماني فاهم فيها زين

شكرا لتحملك

460.gif

#7

فعلاً كلامك صحيح

صفحات الjsp يتم تحويلها إلى servlet ثم إلى Bytecode

يعني بالأخير كله نفس الشي ، وتقدر تعمل المشروع كله بصفحات jsp !!

يمكنك تصور الفرق بالتالي

صفحات jsp هي أعلى مستوى من servlet كيف ؟؟

انظر :

Servlet

PrintWriter out=response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title> HelloWorld</title>");
out.println("</head>");
out.println("<body>");
out.println("Hello World");
out.println("</body>");
out.println("</html>");

لاحظ كثرة أوامر out.println لترتيب البيانات المرسله او مايسمى layout

JSP

<html>
<head>
<title> Hello World</title>
</head>
<body>
<h1>
<% out.println("Hello, World");
%>
</h1>
</body>
</html>

كأنها صفحة html ولكن ميزتها أنها ليست ثابته

تحتوي على Scriplets ( العلامتين <% ، %> ) وفي مثالنا بسيط هو طباعة سترنق

ولكن تخيل لو كان العمل هو استدعاء من قاعدة بيانات وفلترة المعلومات ،

هل ستكتب كل هذه العمليات المعقده داخل Scriplets

وقد تحتوي على java scripts للمستخدم لادخل له بالسيرفر

لذلك جائت صفحات jsp لعرض البيانات

والعمليات أو الـProcessing data يكون دائماً في servlet

دائماً الفروق لاتتضح إلا مع العمل ويجب استخدام التقنيتين jsp & servlet كليهما في المشروع

مثلاً عندما تعمل على مايسمى MVC Pattern ستدرك أن صفحات jsp تستعمل لعمل View للداتا

و Servlet تستعمل لتتحكم بنوع البانات المرسل إلى المستخدم

لاتنسى ان الـj2ee موجود على أساس 3tiers

التي تعتمد على الفصل بيين Presentation layer (like jsp pages ) & Brocess Layer ( like servlets )& Presistense(

storages )

ولذلك فهو مطلب رئيسي أن تفصل في مشروعك بيين عرض البيانات ومعالجتهن

من ناحيه أخرى

فكر ببساطه في لغات البرمجه ،

لو جاك واجب يقول ادخل رقمين واطبع جمعهم ، هل تهم اللغه هنا ؟ طبعاً تهم

ماذا لو اخترت الأسمبلي ؟ ستحل الواجب ولكن بصعوبه ، لكنها بسهوله مع الجافا

0

#8

ألف شكرا فعلا موضوع ممتاز

الله يحفظك

3424.gif
#9

حياك الله اخوي ابن السعوديه

آسف على تأخري في الرد

#10

بارك الله فيك

ملف jsp اشتغل

servlet ما تبي تشتغل

وتعطيني هالمسج

HTTP Status 404 - /servlet/HelloWorld2

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

type Status report

message /servlet/HelloWorld2

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

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

Apache Tomcat/5.5.20

ارجو المساعده

#11
fathalsahiki كتب:
بارك الله فيك

ملف jsp اشتغل

servlet ما تبي تشتغل

وتعطيني هالمسج

HTTP Status 404 - /servlet/HelloWorld2

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

type Status report

message /servlet/HelloWorld2

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

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

Apache Tomcat/5.5.20

ارجو المساعده

نصيحتي لك هي عدم إضاعة وقتك الثمين في السرفلت و توجة الى JSF او الى JSP&Struts

والله الموفق.

#12
fathalsahiki كتب:
بارك الله فيك

ملف jsp اشتغل

servlet ما تبي تشتغل

وتعطيني هالمسج

HTTP Status 404 - /servlet/HelloWorld2

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

type Status report

message /servlet/HelloWorld2

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

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

Apache Tomcat/5.5.20

ارجو المساعده

واضح أن التومكات لم يتعرف على وجود السيرفلت ،

أعد تشغيل التومكات وجرب الدخول إلى السيرفلت ، واذا استمرت المشكله فهي من أمرين

إما أنك لم تضع ملف HelloWorld2.class في مكانها الصحيح

C:\tomcat5.5\webapps\ROOT\WEB-INF\classes

أو أن هناك خطأ في التسميه ، تأكد من اسم الملف

ali7876 كتب:
نصيحتي لك هي عدم إضاعة وقتك الثمين في السرفلت و توجة الى JSF او الى JSP&Struts

والله الموفق.

شكراً لك أخي علي لهذه النصائح ولكن أخي لاأعتقد أن أحداً ينكر أهمية السيرفلت

فحتى في JSF or Struts هناك سيكون Controller وبالتالي من لم يعلم ماهو السيرفلت كبدايه له

في رأيي ستكون صعبه عليه تعلم servlet داخل صفحات JSF or Struts

في الأخير المسأله تختلف من شخص لآخر ولكن أنا أحبذ دائماً أن الانسان ينتقل تصاعدي أي من الabstract thing إلى details

بالتوفيق

#13

قمت بعمل كل الخظوات ولا زالت المشكلة قائمة

لا حول ولا قوة الا بالله

#14

شكرا اخي الكريم

السيرفر شغال ولكن عندي مشكله في صفحه الjsp المحتويه على jdbc .. الصفحة لا تعمل.. أين الخلل؟

#15

أخوي عيسى

كثر الله خيرك شرح وافي وجميل ,وعندي إستفسار بسيط .

أنا عندي apache server على جهازي لكن هل أقدر أنزل عليه Servlet engine لصفحات الjsp

أنا لا أريد تنزيل apache مدمج معه Servlet engine . ودمتمت بخير

#16

أخ b.m.s ستجد ضالتك في الرابط التالي إن شاء الله...

/index.php?showtopic=112262

فحنوت ألثم جرحه الرعافَ فانتكأت جراحي..

وهمت على خدي الدموع فقلت يا روحي وراحي..

هلّا رحمتَ قلوبنا .. وعدلت عن هذا الرّواحِ ِ ..؟

فأجابني البطل المسجّى هازئاً بيَ .. باقتراحي

كفكف دموعك ليس في عبراتك الحرّى ارتياحي

هذي سبيلي .. إن صدقت محبتي .. فاحمل سلاحي

Sun Certified Java Programmer

#17

اخي مشكور على الموضع كتير لكن لدي بعض الاسئلة لو تكرمت بالرد

1. هل تعمل jsp على سيرفر wamp؟

2. هل يمكنني اختبار صفحاتي التي تم عملها في سيرفر jrun على سيرفر tomcat؟

3. هل يمكنني اختبار موقعي المبني بـ jsp في مواقع الاستضافة التي تستخدم سيرفرات Apache و لوحة تحكم Cpanel؟

ولك الشكر

#18
suntoya كتب:
اخي مشكور على الموضع كتير لكن لدي بعض الاسئلة لو تكرمت بالرد

1. هل تعمل jsp على سيرفر wamp؟

لاأظنه يدعم jsp ويمكنك معرفة ذلك من الhelp

2. هل يمكنني اختبار صفحاتي التي تم عملها في سيرفر jrun على سيرفر tomcat؟

نعم JRun & JBoss & tomcat كلهم يدعمون jsp and servlet

3. هل يمكنني اختبار موقعي المبني بـ jsp في مواقع الاستضافة التي تستخدم سيرفرات Apache و لوحة تحكم Cpanel؟

لاأدري

ولك الشكر

#19

الاخ العزيز جزاك الله كل خير

لدي بعض الاسئلة

1- ما هي معلومات الدخول لصفحة التحكم بالتوم كات الموجود على الرابط http://127.0.0.1:8080/admin/

2- ما هي السيرفرات المجانية او ذات الاسعار المنخفضة و التي تدعم الجافا بشكل جيد

شكرا جزيلا

*** Sun Certified Java Programmer ***

#20

Tomcat's administration web application is no longer installed by default. Download and install the "admin" package to use it.

هذا ماظهر لي عندما حاولت الدخول على الادمن ، لذلك حمل الباكج الخاصه بالادمن من موقع اباتشي أو ابحث في documentation

السؤال الثاني لاأدري

#21

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

أنا جربت كل حاجة بل واستخدمت ال Eclipse IDE

لكن نفس المشكلة بتظهر في ال servlets

HTTP Status 404 - /servlet/HelloWorld2

type Status report

message /servlet/HelloWorld2

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

أرجو الرد السريغ لأني محتاجه ضروري وجزاكم الله خيرا

#22

eclipse ماستخدمه لذلك لاأدري

#23

جرب إزالة الجافا و نصيبه مره أخري` قد يكون العيب منه.

أو استخدم نيتبينز

#24

شكرا اخي العزيز

واعتذر عن وضع موضوعي بدون البحث لكني كنت محتاجته فعلا

شكرا جزيلا

#25

انا منزله الي كليبس عندي بس ماسبب لي مشاكل مع السيرفلت؟

يمكن فيه عندك خطأ بادراج المتغيرات؟

مواضيع مشابهة