הנחיית 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 גדול מזה
שמצוין בהנחיה אך לא בקטן יותר. לדוגמא:
הנחיה זו קובעת שתוכן מסמך יעבור דרך 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 היא שפת התכנות היחידה וכן אפשרות ברירת המחדל.
|