آموزش کد نویسی با JSP: بخش پنجم - دایرکتیوها

در این مقاله ما دایرکتیو ها را در JSP ‌به شما آموزش خواهیم داد.

نکته: این آموزش در ادامه آموزش هایی است که قبلا در وب سایت JSPTutorial.ir‌ قرار می گرفت. به همین دلیل پیشنهاد می شود که قبل از خواندن این مقاله سری های قبلی آموزش را در وب سایت  JSPTutorial.ir  ‌بخوانید.

به طور کلی دایرکتیو ها یکسری دستورات هستند که به وب سرور JSP اطلاع می دهند که برای کامپایل و اجرای صفحه چه کارهایی را انجام دهد.

یک دایرکتیو روی ساختار کلی Servlet تاثیر میذاره.

فرم کلی یک directive به شکل زیر هستش:

<%@ directive attribute = "value" %>

 یک دایرکتیو میتونه یک تعداد attribute داشته باشه که با علامت (,) از هم جدا میشن.

به طور کلی سه نوع directive داریم:

1-دایرکتیوهای Page

این نوع دایرکتیوها attribute هایی رو که مخصوص صفحه هستن مشخص می کنن، مثل زبان برنامه نویسی،صفحه Error و روش بافر کردن.

شکل کلی این دایرکتیوها به صورت زیر هست:

<%@ page ... %>

 

2-دایرکتیوهای include

با استفاده از این نوع directive‌ می تونید یک فایل رو include کنید که در فاز ترجمه به فایلتون اضافه بشه. میشه گفت مثل include در زبان php‌ عمل می کنه.

شکل کلی این دایرکتیوها به صورت زیر هست:

<%@ include ... %>

3-دایرکتیوهای taglib

با استفاده از این نوع directive‌ می تونید کتابخونه های tag رو تعریف کنید.

شکل کلی این دایرکتیوها به صورت زیر هست:

<%@ taglib ... %>

خوب،حالا به توضیح تک تک این دایرکتیوها می پردازیم:

دایرکتیو Page

همونطور که توضیح داده شد از دایرکتیو مشخصاتی که مخصوص صفحه هست رو مشخص می کنه. دایرکتیو page رو همه جای صفحه می تونید بنویسید ولی عرف اینه که اون ها رو تو اول صفحه می نویسن.گفتیم که به صورت زیر نوشته میشه:

<%@ page attribute = "value" %>

 جای attribute می تونیم یکی از مشخصه های زیر رو بذاریم:

buffer: مدل بافر کردن رشته خروجی رو تعیین می کنه.

autoFlush: رفتار بافر خروجی سرولت رو کنترل می کنه.

contentType: این مشخصه character encoding رو تعیین می کنه(مثل utf-8)

errorPage:صفحه jsp دیگه ای رو مشخص می کنه که در صورتی که این صفحه error‌ ای داشته باشه که با try و catch مدیریت نشده تو اون نشون داده بشه.

isErrorPage: نشون میده که آیا این صفحه یک صفحه برای نشون داده error هست یا نه(از همون هایی که در errorpage تعیین میشن).

 extends:این مشخصه superclass ای که کلاس servlet این صفحه از اون ارث میبره تعیین می کنه.

import:مثل کلیدواژه import در جاوا یک لیست از کلاس ها و پکیج هایی رو که این صفحه از اون ها استفاده می کنه import‌ میکنه.

info:یک رشته رو تعیین می کنه که بعدها با استفاده از متد() getServletInfo  سرولت ، می تونیم بهش دسترسی پیدا کنیم.

isThreadSafe:مدل threading سرولت تولید شده رو تعیین می کنه.

language: زبان برنامه نویسی استفاده شده در صفحه رو نشون میده.

session:نشون میده که آیا صفحه jsp‌ ما از Http session ها استفاده می کنه یا نه.

isELIgnored:نشون میده که آیا از عبارت های EL در JSP‌ چشم پوشی بشه یا نه.

isScriptingEnabled: نشون میده که آیا اجاز استفاده از عنصر(element) های Scripting وجود داره یا نه.

 

دایرکتیو include

همونطور که توضیح داده شد با استفاده از این دایرکتیو می تونید یک صفحه دیگه رو به محتوای صفحه فعلیتون بچسبونید.مثلا می تونید منوی بالای صفحه رو که در تمام صفحات مشترک هست رو داخل یک فایل JSP‌ مجزا بذارید و در تمام صفحات اون رو include کنید.jsp جای این عبارت محتوای فایل تعیین شده رو میذاره.دقیقا مثل اینکه محتوای این فایل را داخل فایلتون نوشته باشید.گفتیم که به صورت زیر نوشته میشه:

<%@
include
attribute="URL"
%>

 جای url آدرس نسبی اون فایل رو قرار میدید.این دایرکتیو را بر اساس نیازتون می تونید در هر جایی از صفحه استفاده کنید.

 3-دایرکتیوهای taglib

jsp‌ به شما این امکان رو میده که واسه خودتون تگ های جدید تعریف کنید که هر کدومشون رفتار های خاص خودشون رو دارن.مثلا یک textbox خاص.

با استفاده از این directive شما می تونید taglib (کتابخونه تگ ها)خودتون رو به صفحه اضافه کنید و ازش استفاده بکنید.شکل کلیش هم به این صورت هستش:

<%@ 
taglib
uri="taglibURI"
prefix="TagLibPrefix"
%>

 جای TagLibURI آدرس taglib تون را وارد می کنید و جای TagLibPrefix پیشوندی که با استفاده از اون تگ های این taglib  رو مشخص می کنید ،وارد می کنید.

مثلا :

<%@
taglib
uri
= "http://sweetsoft.ir/taglib"
prefix
="bigtexts"
%>
<bigtexts:textbox/>

 مقاله از : هادی امیرنهاوندی - گروه نرم افزاری Sweet

 منابع:

https://www.tutorialspoint.com/jsp/jsp_directives.htm

https://www.tutorialspoint.com/jsp/taglib_directive.htm

https://www.tutorialspoint.com/jsp/page_directive.htm