דף הבית   | מפת האתר   | אודות

מדריך ללימוד JSP >הנחיית דף JSP

הינך נמצא ב :

הנחיית דף JSP: עיצוב יישומוני שרת

הנחיית JSP או JSP Directive משפיעה על המבנה הכולל של יישומון השרת אשר נוצר מתוך דף JSP. התבניות הבאות מציגות את שתי הצורות האפשריות לכתיבת הנחיות.


<%@ directive attribute="value" %>

<%@ directive attribute1="value1"

                          attribute2="value2"

                          ...

                          attributeN="valueN"%>

קיימים 3 סוגי הנחיות ב- JSP: page ,include ,taglib.

ההנחיה page מאפשרת שליטה על מבנה יישומון השרת על ידי יבוא מחלקות, התאמה אישית של ה-super class של יישומון השרת, קביעת סוג התוכן וכדומה. ניתן להציב הנחיית page בכל מקום במסמך והשימוש בה יתואר בהמשך. ההנחיה include מאפשרת הכנסה של קובץ לתוך מחלקת יישומון השרת בזמן המרת קובץ jsp ליישומון השרת. יש להציב את ההנחיה במסמך במקום בו תרצה להכניס את הקובץ. ההנחיה taglib הוצגה ב-JSP 1.1 ומשמשת להגדרת תגיות סימון.

בעזרת ההנחיה page תוכל להגדיר את המאפיינים הבאים:
import, contentType, isThreadSafe, session, buffer, autoflush, extend, info, errorPage, isErrorPage, language.

מאפיינים אלו יתוארו בסעיפים הבאים.

התכונה import

התכונה import של ההנחיה page מאפשרת לציין packages שייובאו על ידי יישומון השרת. במידה ולא  תציין במפורש ייבוא של packages, יישומון השרת ייבא את
java.lang.* ,  javax.servlet.* , ,javax.servlet.jsp.* ,  javax.servlet.http.*

השימוש בתכונה import נעשה באחת משתי הצורות הבאות:

 

 

<%@ page import="package.class1,package.classN"%>

לדוגמא

 

 

<%@ page import="java.util.*"%>

 

התכונה import היא תכונת page היחידה שיכולה להופיע מספר פעמים באותו מסמך. ההנחיות page יכולות להופיע בכל מקום בתוך המסמך, אך נהוג להציב הנחיות import בתחילת המסמך או לפני המקום הראשון שמתייחס ל- package.

 

התכונה contentType  

התכונה contentType קובעת כותרת תגובה content-type המציינת את סוג ה-MIME של המסמך שנשלח ללקוח. הגדרת ה-content-type יכולה להיעשות באחת מהצורות הבאות:

 

 

<%@ page contentType="MIME-Type"%>

 

לדוגמא:

 

 

<%@ page contentType="text/plain"%>

 

או לחלופין

 

 

<%response.setContentType("text/plain")"%>

 

שלא כמו ביישומוני שרת רגילים, בהם ברירת המחדל של ה-content-type היא text/plain, הגדרת ברירת המחדל של JSP היא text/html.

 

התכונה isThreadSafe

תכונה זו קובעת אם יישומון השרת שמתקבל מדף JSP יממש את ה-SingleThreadModel Interface. לדוגמא:

 

 

<%@ page isThreadSafe="false"%>

 

ביישומוני שרת רגילים ריבוי בקשות משתמש יביא ליצירת  Threads שניגשים בו זמנית ל-service method של אותו מופע ה-Servlet. התנהגות זו מניחה שיישומון השרת הוא thread safe. כלומר יישומון השרת מסנכרן את הגישה שלו לנתונים כך שלא יתקבלו ערכים לא עקביים כתוצאה מסידור לא צפוי של הפעלת threads.
ברירת המחדל היא שיישומון השרת יממש את ה-SingleThreadModel Interface.

 

התכונה session

תכונה זו קובעת אם הדף משתמש ב-HTTP sessions. לדוגמא:

 

 

<%@ page session="false"%>

 

ברירת המחדל היא true, כלומר המשתנה session המוגדר מראש קשור ל-session הקיים (אם אכן קיים session), ואם לא, יווצר session חדש ויקושר למשתנה זה. ערך false משמעותו שלא יהיה שימוש אוטומטי ב-sessions וניסיון לגשת למשתנה session במקרה זה יביא לשגיאות בזמן המרת דף ה-JSP לישומון שרת.

 

התכונה buffer

תכונה זו מציינת את גודל ה-buffer של המשתנה out (מסוג JspWriter - שהינה subclass של PrintWriter). לשימוש בתכונה זו 2 צורות:

 

 

<%@ page buffer="sizekb"%>

<%@ page buffer="none"%>

 

שרתים יכולים להשתמש ב-buffer גדול מזה שמצוין בהנחיה אך לא בקטן יותר. לדוגמא:

 

 

<%@ page buffer="32kb"%>

 

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

 

התכונה autoflush

תכונה זו קובעת אם buffer הפלט יתנקה (flushed) אוטומטית כאשר הוא מלא או האם ייזרק exception. דוגמא לשימוש בתכונה זו:

 

 

<%@ page autoflush="false"%>

 

ברירת המחדל עבור תכונה זו הינה true.

 

התכונה extends

תכונה זו מציינת את ה-super class של יישומון השרת אשר יווצר עבור דף JSP. התבנית הינה:

 

 

<%@ page extends="package.class"%>

 

היזהר בשימוש של תכונה זו משום שיתכן והשרת כבר משתמש ב-super class.

 

התכונה info

תכונה זו מגדירה string שניתן יהיה לקבלו מיישומון השרת דרך getServletInfo. לדוגמא:

 

 

<%@ page info="some string"%>

התכונה errorPage

תכונה זו מציינת דף JSP שאמור לטפל בחריגה כלשהיא מסוג Throwable, שמתרחשת אך לא נלכדת בדף הנוכחי. שימוש בתכונה זו נעשה בצורה הבאה:

 

 

<%@ page errorPage="relative url"%>

 

חריגה שהתרחשה תהיה זמינה לדף השגיאות המוקצה דרך המשתנה exception.

 

התכונה isErrorPage

תכונה זו קובעת אם הדף הנוכחי יכול לתפקד כדף טיפול בשגיאות של דף JSP אחר. לדוגמא:

 

 

<%@ page isErrorPage="true"%>

 

ברירת המחדל עבור תכונה זו היא false.

 

התכונה Language

תכונה זו משמשת לציון שפות התכנות שבשימוש בצורה הבאה:

 

 

<%@ page language="cobol"%>

 

נכון לעכשיו אין צורך להתייחס לתכונה זו משום ש-Java היא שפת התכנות היחידה וכן אפשרות ברירת המחדל.

 



       
  כל הזכויות שמורות למערכות מידע אית"ן