הכרות ראשונית עם טכנולוגיית JSP

‏ • 7 ביוני, 2004

הערת הקדמה: במאמר זה ובעוקבים לו, נשתמש בשרת ה- web שנקרא tomcat ורצוי מאד למתחילים להשתמש בו גם כן (לשם קלות ההדגמות וההסברים).

קבצי JSP מיועדים לכתיבת דפי אינטרנט שאינם סטטים, ומסוגלים לקבל מידע מתוך לוגיקה מסוימת, מסד נתונים שיושב בצד השרת, קובץ מסוים וכו'. כשאנו כותבים דפי HTML רגילים, כל שעלינו לדאוג הוא שהתוכן שלהם יהיה קריא וברור, והעימוד יהיה נורמאלי. אין באפשרותינו להחליט איזה תוכן להציג אלא מראש (בזמן כתיבת דף ה- HTML).

ב- JSP זה שונה. אנחנו יכולים לבצע שינויים בתוכן הדף אותו נציג בעוד רגע לגולש. נעשה זאת ע"י שתילת קוד JAVA בתוך דף ה-HTML הסטטי שלנו, ונשנה את סיומת הקובץ ל- .jsp במקום .html כך יצרנו דף דינאמי שמכיל בנוסף לתוכן, לוגיקה.

לדוגמא, נכתוב דף HTML פשוט:






1
2
3
4
5
6
7
8
9
10
11  




<html>

<head>
     <title>hello world</title>
</head>

<body>
     Hello World!
</body>

</html>


הדף מציג את המשפט Hello World ותו לא. כדי להפוך דף זה ל- JSP נוסיף קוד ג'אווה פשוט פנימה:






1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18  




<html>

<head>
     <title>hello world</title>
</head>

<body>

<%
   String str =
"Hello World!";
%>


the next line is the content of the java variable str:<br>
<%= str %>

</body>

</html>



את הקובץ יש לשמור בסיומת .jsp (ולא .html), ולשים אותו בתיקיית השירות של שרת web מסוים.

מומלץ להשתמש בשרת ה- web הפשוט והחזק tomcat שניתן להורידו חינם מהאינטרנט.

נסו בכתובת הבאה:
http://apache.fresh.co.il/jakarta/tomcat-4/v4.1.30/bin/jakarta-tomcat-4.1.30.exe

אם לא הצלחתם, חפשו בגוגל download tomcat. התוצאות לא יאחרו לבוא…
ההתקנה פשוטה מאד (wizard), ותיקיית השירות שלו נמצאת תחת: tomcat_dir/webapps/ROOT. ברגע שהשרת מופעל (ב-tomcat זה פשוט מאד, יש ב- start->programs צלמית הפעלה והפסקהשל השרת), יש לכתוב בדפדפן האינטרנט:http://localhost:8080 זוהי הכתובת של המחשב המקומי(שלכם!), ב-port שמספרו 8080 (שהוא port ברירת המחדל ב-tomcat). בהקשת הכתובת הנ"ל, נגיע לדף הבית של השרת שמכיל מידע והכוונות. אין לנו צורך בדף זה ואנו רוצים לבדוק את דף ה- jsp שכתבנו ושמנו אותו בתיקיית השירות של tomcat, לכן נקיש כתובת מלאה:
http://localhost:8080/name_of_page.jsp כש-name_of_page.jsp הוא שם הדף אותו כתבנו קודם לכן.
מייד בהקשת הכתובת המפורשת הנ"ל בה ביקשנו את הדף הספציפי שכתבנו, אנחנו אמורים לקבל את התוצאה הבאה:






1
2  




the next line is the content of the java variable str:
Hello World !



מה שעשינו זה, הכרזנו על משתנה מטיפוס String שנקרא str (סתם לדוגמא, יכולנו לקרוא לו גם moshe), והצבנו בו את הערך: Hello World. פקודה אחת מתחת, היתה פקודת HTML שנקראת <br> ומטרתה לרדת שורה אחת למטה, ופקודה אחר כך, מטרתה היא להדפיס את ערך המשתנה שלנו: <%= str %>.


תגי HTML נמצאים בתוך סוגריים משולשים (> ו- <) וכך גם התג המיוחד של JSP. השונה הוא שאחרי הסוגר הפותח ולפני הסוגר המסיים של תג ה-JSP שמים גם את התו %, וזאת כדי שהשרת יבחין שאלו תגים מיוחדים של JSP ולא תגי HTML רגילים. כל מה שהשרת ימצא בין התגים <% ו- %> הוא יחשיב כפקודות JAVA רגילות לחלוטין, וינסה להריצן. טעות בכתיב של פקודה יגרום לשרת להודיע כי הדף לא ניתן להצגה (אין סלחנות כמו ב- HTML).

נסה להכניס את הקוד הבא, במקום הקוד שכתבנו למעלה:






1
2
3
4
5
6
7
8  




<%
  for (int i=0; i<10; i++)
  {
%>

this is no. <%= i %> <br>
<%
  }
%>



הקוד הנ"ל, מבצע לולאה שרצה מ- 0 ועד 10 (לא כולל), ומדפיסה את המשפטים הבאים:






1
2
3
4
5
6
7
8
9
10  




this is no. 0
this is no. 1
this is no. 2
this is no. 3
this is no. 4
this is no. 5
this is no. 6
this is no. 7
this is no. 8
this is no. 9


שים לב, שהקוד שכתבנו כאן, מכיל לולאה של JAVA ובתוכה פקודת HTML (כמו <br> למשל)כמו גם פקודת JSP (כמו: <%= i %>שמטרתה להדפיס את תוכן המשתנה i ).
נסה לשחק עם הדף, ולהכניס בו פקודות JAVA נוספות כיד הדמיון הטובה. כדוגמא, אפשר לנסות את הקוד הבא:






1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24  




<html>

<head>
     <title>JSP Examples 1</title>
</head>

<body>
<%
  String str =
"Hello World!";
%>

    <h2>
        This is HTML. Now we are going to print the contents<br />
        Of the JSP variable we defined:
    </h2>
    <br />
    <%= str %>
    <br /><br /><br /><br />
    <h2>we can even print it in bold:</h2><br />
    <b><%= str %></b><br /><br /><br /><br />
    <h2>and changed the font which we are printing with:</h2><br />
    <font size="+2" color="red"><%= str %></font>
</body>

</html>


נסה לקרוא את הקוד ולהבין בדיוק איך מתקבלת התוצאה.

תגיות: ,

עדי לב

מנהל פורום HTPC ב HOMETHEATER הישראלימקים ומנהל אתר חלם www.chelem.org.il  הבלוג שלי ובשבילכם

תגובות בפייסבוק