منبع: مجله شبكه
فن آوري Java Server Faces يا به اختصار JSF به چنين نيازهايي در دنياي جاوا پاسخ مي دهد. جامعه منبع باز جاوا يا Java Community Process مشخصه هاي استاندارد JSF براي تامين يك راه حل يكتا و استاندارد به منظور توليد نرم افزارهاي تحت وب مبتني بر HTML را معرفي كرده است. در ادامه سعي خواهيم كرد تا مرور سريعي بر ويژگي هاي اصلي اين تكنولوژي انجام دهيم و ببينيم كه در عمل به كمك JSF، چگونه مي توان يك برنامه ساده تحت وب طراحي كرد.
يكي از مشخصه هاي مهم JSF آن است كه اين فن آوري فقط براي استفاده متخصصان طراحي نشده است و طيف وسيعي از كاربران گوناگون مانند طراحان صفحات وب، برنامه نويسان كاربردي و بسياري از گروه هاي ديگر مي توانند از اين ابزار براي كار خود كمك بگيرند. ازآنجايي كه در JSF از تركيبي از JSP/HTML استفاده مي شود، طراحان صفحات وب مي توانند در همان محيط آشنا و مورد علاقه خود به كار طراحي ادامه دهند. در اين صورت برنامه نويس پروژه در مراحل نهايي كار، صفحات طراحي شده را با مجموعه اجزاي گرافيكي UI و تكنولوژي JSF تركيب كرده و نرم افزار را تكميل خواهد كرد.
اجزاي كاربردي JSF
درك مفاهيم به كار رفته در فن آوري JSF براي برنامه نويسان J2EE بسيار و ساده است. در حقيقت، يك نرم افزار كاربردي JSF اساسا يك نرم افزار استاندارد J2EE محسوب مي شود كه با مجموعه اي از اجزاي نرم افزاري ديگر به شرح زير تركيب شده است:
•يك Servlet ويژه به نام Faces كه به صورت web.xml آرايش شده است. در واقع اين Servlet نقش كنترل كننده MVC را ايفا مي كند. (MVC سرنام Model-View-Controller است و يك مدل يا چهار چوب استاندارد برنامه نويسي محسوب مي شود كه در محيط هاي برنامه نويسي گوناگون اعم از زبان هايي نظير C يا C++ يا جاوا كاربرد گسترده اي دارد). شما مي توانيد براي درك ساده تر موضوع، Faces را در نقش يك مامور ترافيك مجسم كنيد كهوظيفه هدايت و راهنمايي تمام درخواست هاي (Requests) ارسال به اجزا ي گوناگون نرم افزار تحت وب را بر عهده دارد. (چهرچوب برنامه نويسي ديگر از جاوا به نام Struts نيز شباهت هاي زيادي به Faces دارد.)
•فايل تنظيمات JSF به نام faces-config.xml هم تا حدود زيادي به فايل تنظيمات تكنولوژي مشابه خود يعني struts شباهت دارد و نقش فايل اصلي تنظيمات را براي مدل هدايت و ناوبري و كنترل ديگر اجزاي نرم افزاري ايفا مي كند.
•فايل هاي ضروري JAR. هر نرم افزار JSF به چنين فايل هاي JAR كه در مسير WEB-INF/LIB ذخيره مي شوند، نياز خواهد داشت. در جدول يك، نام اين فايل ها را ملاحظه مي كنيد. به طور معمول، هر نرم افزار JSF براي نمايش اجزاي گرافيكي UI به مجموعه اي از اجزاي نرم افزاري، Javabean مدل مديريت شده، و تعدادي از فايل هاي HTML و JSP ديگر نياز دارد. البته مي توان در پروژه هاي JSF به جاي استفاده از JSP براي توليد اجزاي گرافيكي كاربر (UI)، از فايل هاي خوش تركيب اكس ام ال(well-formed) استفاده كرد. در زمان انتقال برنامه هاي JSF، نيازي به محيط زمان اجرا (run-time) خاصي نيست و چنين نرم افزاري قادر خواهد بود تا در container استانداردJ2EE مانند Ttomcat به صورت مستقل اجرا شود. JSF API مجموعه اي از ابزارهاي زير را در اختيار برنامه نويسان قرار مي دهد:
•مجموعه غني از اجزاي گرافيكي كاربر (UI) كه از اجزاي ساده اي نظير جعبه هاي متني ساده آغاز شده و تا اجزاي گرافيكي پيشرفته ادامه مي يابد.
•كتابخانه ويژه اي از برچسب هاي اصلي JSF كه وظيفه مديريت رويدادها و اعتبار سنجي و به طور كلي تمام امور غير وابسته به UI را بر عهده دارند.
•كتابخانه اي از برچسب هاي رندر كننده HTML استاندارد براي رند كردن يا نمايش دادن اجزاي رابط كاربر در صفحات JSP.
سناريوي معمول توليد يك نرم افزار نرمال JSF، در برگيرنده مرحله تنظيم كردن يك نرم افزار تحت وب J2EE به وسيله اجزاي JSF مي باشد. در اين جريان، طراح صفحات وب به كمك ابزارهاي متداول، در ابتدا مجموعه اي از صفحات وب JSP/HTML را خواهد ساخت كه استاتيك هستند. از طرف ديگر برنامه نويس مختار است كه از اجزاي گرافيكي آماده استفاده كند و يا آن كه خود دست به طراحي اجزاي رابط گرافيكي جديد بزند. به عنوان مثال، مي توان از اجزاي رابط گرافيكي كاربر سفارشي براي تكنولوژي هاي كلاينت هاي غير HTML (نظير كلاينت هاي زبان نشانه گذاري بي سيم يا WML) استفاده كرد. نهايتا برنامه نويسان مراحل نهايي پروژه را با استفاده از صفحات HTML استاتيك و افزودن برچسب هاي JSF و در صورت ضرورت، اضافه كردن اجزاي UI سفارشي و Bean هاي مدل يا مديريت داده ها تكميل خواهند كرد.
اما ببينيم كه يك نرم افزار JSF در زمان اجرا چگونه عمل مي كند(در واقع به بررسي چرخه حيات JSF توجه خواهيم كرد. ) فرآيند چرخه حيات JSF از بسياري از جهات مشابه ديگر چرخه هاي حيات Web Application ها است. بدين صورت كه كلاينت وب يك درخواست HTML ارسال مي كند و از طرف ديگر web appliction درخواست HTML را دريافت و پردازش مي كند و پاسخ مقتضي را در قالب HTML باز مي گرداند. اما اين فرآيند درJSF كمي پيچيده تر است. علت اين مطلب آن است كه در نرم افزارهاي JSF، لايه نمايش در زمان اجرا (Run time view) در سمت سرور مديريت مي شود. البته به ازاي هزينه اضافي پرداخت شده بابت تحمل پيچيدگي هاي فوق، قابليت انعطاف بيشتري در كاربردهايي كه در آن ها تغيير حالت (State change) زياد است، به دست خواهد آمد. يكي ديگر از دلايل پيچيدگي بيشتر فرآيندهاي پروسس JSF، در اين حقيقت نهفته است كه محيط زمان اجراي برنامه هاي JSF بايد برحسب آن كه درخواست ها از محيط دروني JSF ارسال شده اند و يا از خارج دريافت شده اند، روش هاي مديريتي متفاوتي در پيش بگيرد.
مقدمات يك پروژه JSF
نخستين قدم در ساخت يك برنامه كاربردي JSF، ايجاد يك ساختار خالي نرم افزار J2EE با همان سازمان فايل و دايركتوري استاندارد و فايل تنظيمات web.xml است. براي اطلاع از ديگر ملزومات اوليه طراحي نرم افزارهاي JSF به كادر JSF مراجعه نماييد.
نحوه دريافت JSF
براي ساخت يك برنامه ساده JSF، بايد Implementation يا پياده سازي مرجع JSF را از نشاني زير دريافت كنيد:
[External Link Removed for Guests]
تا تاريخ آخرين نسخه پياده سازي JSF كه در جريان كنفرانس javaOna در سال 2003 عرضه شده بود، نسخه v1.1 نام دارد و در حدود 11 مگابايت حجم دارد.
پس از اين كار (آماده ساختن ساختار پروژه خالي J2EE)، بايد فايل هاي ضروري jar را به دايركتوري WEB-INF/lib منتقل سازيم. در مرحله بعدي، faces Servlet و mapping Servlet براي الگوي يو آر ال (/faces/x) را بايد در فايل web.xml اثر دهيم (كد شماره 1). در كد شماره 1، پارامتر context مشخص كننده مكان فايل faces-config.xml است.
در ادامه لازم است تا فايل faces-config.xml را به مسير WEB-INF نيز منتقل كنيم. در قطعه كد شماره 2، نمونه اي از چنين فايلي را كه هنوز خالي است، نمايش داده ايم (كد شماره 2).
به اين ترتيب يك ساختار آماده براي توليد يك نرم افزار به اصطلاح JSF enabled J2EE application در دست خواهيم داشت. به طور معمول به عنوان يك عادت برنامه نويسي پسنديده، مناسب است كه در اين مرحله يك دايركتوري موازي با دايركتوري WEB-INF ايجاد كنيم و مثلا براي آن نام Src را انتخاب كنيم تا محل ذخيره فايل هاي سورس كلاس هاي جاوا پروژه باشد.
در اين فاز، بسياري از برنامه نويسان حرفه اي ترجيح مي دهند تا از يك فايل اسكريپ Ant براي كمك به كامپايل كردن سورس كدها و انتقال نتيجه به مسير WEB-INF، كمك بگيرند Ant نام ابزاري است كه توسط آن بسياري از كارهاي تكراري و دستي برنامه نويسي در مرحله كامپايل سورس كد، به صورت خودكار انجام مي شود. در واقع تمام مراحل كار به صورت اسكريپت هايي در يك فايل كه در حكم نسخه يا دستورالعمل است، با جزئيات تمام ثبت مي شود تا سيستم بتواند به كمك اين فايل كارها را به طور خودكار پيش ببرد.
JSF جهت ساخت رابط هاي گرافيكي كاربري
در اين بخش ميتوانيد به مباحث مربوط به انواع زبان هاي برنامه نويسي بپردازيد
مدیران انجمن: athlon64x2, abbas.m.k, شوراي نظارت
- پست: 15899
- تاریخ عضویت: جمعه ۷ بهمن ۱۳۸۴, ۷:۵۱ ب.ظ
- سپاسهای ارسالی: 72687 بار
- سپاسهای دریافتی: 31680 بار
- تماس:
JSF جهت ساخت رابط هاي گرافيكي كاربري
زندگي صحنه يکتاي هنرمندي ماست هرکسي نغمه خود خواند و از صحنه رود
صحنه پيوسته به جاست خرم آن نغمه که مردم بسپارند به ياد
[External Link Removed for Guests] | [External Link Removed for Guests] | مجله الکترونيکي سنترال کلابز
[External Link Removed for Guests] | [External Link Removed for Guests] | [External Link Removed for Guests]
صحنه پيوسته به جاست خرم آن نغمه که مردم بسپارند به ياد
[External Link Removed for Guests] | [External Link Removed for Guests] | مجله الکترونيکي سنترال کلابز
[External Link Removed for Guests] | [External Link Removed for Guests] | [External Link Removed for Guests]
لطفا سوالات فني را فقط در خود انجمن مطرح بفرماييد، به اين سوالات در PM پاسخ داده نخواهد شد
پرش به
- بخشهاي داخلي
- ↲ اخبار و قوانين سايت
- ↲ سوالات، پيشنهادات و انتقادات
- ↲ مرکز جوامع مجازي - CentralClubs Network
- ↲ سرويس ميزباني وب - CentralClubs Hosting
- ↲ مجله الکترونيکي مرکز انجمنهاي تخصصي
- بخش تلفن همراه
- ↲ نرم افزار تلفن همراه
- ↲ Symbian App
- ↲ Android App
- ↲ Windown Phone App
- ↲ iOS App
- ↲ JAVA Mobile App
- ↲ بازيهاي تلفن همراه
- ↲ Symbian Games
- ↲ Android Games
- ↲ iOS Games
- ↲ Windows Phone Games
- ↲ JAVA Mobile Games
- ↲ گوشيهاي تلفن همراه
- ↲ Sony
- ↲ Samsung
- ↲ GLX
- ↲ Dimo
- ↲ Huawei
- ↲ Motorola
- ↲ Nokia
- ↲ گوشيهاي متفرقه
- ↲ سرگرميهاي تلفن همراه
- ↲ خدمات و سرويسهاي مخابراتي
- ↲ تازه ها و اخبار تلفن همراه
- ↲ مطالب كاربردي تلفن همراه
- ↲ متفرقه در مورد تلفن همراه
- ↲ سوالات و اشکالات تلفن همراه
- بخش كامپيوتر
- ↲ نرم افزار كامپيوتر
- ↲ گرافيک و طراحي کامپيوتري
- ↲ طراحي صفحات اينترنتي
- ↲ سوالات و اشکالات نرم افزاري
- ↲ برنامه نويسي
- ↲ C Base Programming
- ↲ Dot Net Programming
- ↲ Web Programming
- ↲ Other Programming
- ↲ Software Engineering
- ↲ Java Programming
- ↲ Database Programming
- ↲ سخت افزار كامپيوتر
- ↲ امنيت و شبكه
- ↲ امنيت
- ↲ شبکه
- ↲ تازه ها و اخبار دنياي کامپيوتر
- ↲ مطالب كاربردي كامپيوتر
- ↲ متفرقه در مورد کامپيوتر
- بخش هوا فضا
- ↲ نيروي هوايي ايران
- ↲ متفرقه درباره نیروی هوایی
- ↲ نیروی هوایی و سازندگی
- ↲ حماسه و حماسه آفرینان نيروي هوايي
- ↲ تیزپروازان در بند
- ↲ شهدا و جانباختگان نیروی هوایی
- ↲ عملیاتهاي نيروي هوايي
- ↲ دستاوردها و اخبار نيروي هوايي
- ↲ تاریخچه نیروی هوایی در ایران
- ↲ هوانيروز ايران
- ↲ حماسه و حماسه آفرينان هوانيروز
- ↲ شهدا و جانباختگان هوانيروز
- ↲ دستاوردها و اخبار هوانيروز
- ↲ هواپيماها
- ↲ هواپيماهاي نظامي
- ↲ هواپيماهاي غير نظامي
- ↲ هواپيماهاي بدون سرنشين
- ↲ بالگردها
- ↲ بالگردهاي نظامي
- ↲ بالگردهاي غير نظامي
- ↲ بالگردهاي بدون سرنشين
- ↲ اخبار بالگردها
- ↲ تسليحات هوايي
- ↲ موشكهاي هوا به هوا
- ↲ موشكهاي هوا به زمين
- ↲ موشکهاي دريايي
- ↲ موشکهاي زمين به هوا
- ↲ موشکهاي زمين به زمين
- ↲ ديگر مباحث هوانوردي
- ↲ الکترونيک هواپيمايي
- ↲ موتورهاي هوايي
- ↲ شبيه سازهاي پرواز
- ↲ گالري تصاوير هوافضا
- ↲ تصاوير هواپيماهاي جنگنده
- ↲ کليپهاي هوايي
- ↲ تصاوير هواپيماهاي بمب افکن
- ↲ تصاوير هواپيماهاي ترابري
- ↲ تصاوير هواپيماهاي مسافربري
- ↲ تصاوير هواپيماهاي شناسايي
- ↲ تصاوير بالگردهاي نظامي
- ↲ تصاوير بالگردهاي غير نظامي
- ↲ تصاوير نمايشگاههاي هوايي
- ↲ تصاوير متفرقه هوايي
- ↲ انجمن نجوم
- ↲ منظومه شمسي
- ↲ كيهانشناسي
- ↲ گالري تصاوير نجوم
- ↲ اخبار نجوم
- ↲ اخبار هوافضا و هوانوردي
- ↲ مدرسه هوانوردي
- ↲ كتابخانهي هوا فضا
- ↲ متفرقه در مورد هوا فضا
- بخش جنگ افزار
- ↲ ادوات زميني
- ↲ ادوات زرهي
- ↲ تجهيزات انفرادي
- ↲ تسليحات سنگين و توپخانهاي
- ↲ خودروهاي نظامي
- ↲ تسليحات ضد زره
- ↲ ادوات دريايي
- ↲ ناوهاي هواپيمابر
- ↲ ناوشکنها
- ↲ رزم ناوها
- ↲ ناوچهها
- ↲ زيردرياييها
- ↲ تجهيزات و تسليحات دريايي
- ↲ ساير ادوات دريايي
- ↲ گالري تجهيزات و ادوات دريايي
- ↲ اخبار ادوات دريايي
- ↲ اخبار نظامي
- ↲ گالري نظامي
- ↲ متفرقه در مورد جنگ افزار
- بخش دفاع مقدس
- ↲ حماسه دفاع مقدس
- ↲ تخريب و خنثي سازي
- بخش خودرو و وسايل نقليه
- ↲ مباحث فنی و تخصصی خودرو
- ↲ معرفي خودرو
- ↲ تازهها و اخبار خودرويي
- ↲ گالري خودرو
- ↲ متفرقه وسايل نقليه
- بخش پزشکي
- ↲ پزشكي و درمان
- ↲ پزشکي
- ↲ سوال پزشکي
- ↲ بهداشت
- ↲ بهداشت عمومي
- ↲ بهداشت مواد غذايي
- ↲ لوازم آرايشي و بهداشتي
- ↲ متفرقه در مورد پزشکي
- ↲ روانشناسي و روان پزشكي
- بخش فرهنگ، تمدن و هنر
- ↲ فرهنگي هنري
- ↲ شعر و ادبيات
- ↲ فيلم و سينما
- ↲ هنرهاي نمايشي
- ↲ فرهنگ هنرهاي نمايشي
- ↲ موسيقي
- ↲ عكس و نقاشي
- ↲ تاريخ، فرهنگ و تمدن
- ↲ تاريخ ايران
- ↲ تاريخ جهان
- ↲ فلسفه
- ↲ زبانهاي خارجي
- ↲ زبان انگليسي
- ↲ زبان اسپانيايي
- ↲ هنر آشپزي
- بخش علم، فناوري و آموزش
- ↲ انجمن علم و فناوري
- ↲ انجمن آموزش
- ↲ کتاب و فرهنگ مطالعه
- ↲ دانش عمومی
- ↲ کنکور و دانشگاه
- ↲ جامعه شناسي
- ↲ خانواده
- ↲ متفرقه جامعه شناسي
- ↲ حقوق و قضا
- ↲ علوم
- ↲ فيزيک
- ↲ شيمي
- ↲ رياضي
- ↲ متالورژي
- ↲ پليمر
- ↲ علوم کشاورزي
- ↲ گياهان زراعي و باغي
- ↲ گياهان دارويي
- ↲ طبیعت و محیط زیست
- ↲ زيست شناسي
- ↲ عمران
- ↲ بتن و سازههاي بتني
- ↲ معماري و شهرسازي
- ↲ سبکها و مشاهير معماري
- ↲ شهرسازي
- ↲ معماري داخلي
- ↲ معماري منظر
- بخش الکترونيک و رباتیک
- ↲ مفاهیم اولیه و پایه در الکترونیک
- ↲ نرم افزارهای کمکی الکترونیک
- ↲ مدارهای مجتمع
- ↲ سوالات و پرسشهای مفاهیم پایه
- ↲ مدارات ساده و آسان
- ↲ مدارهای آنالوگ و دیجیتال
- ↲ شبیه ساز و طراحی مدار
- ↲ مدارات صوتی
- ↲ مدارات، منابع تغذیه سویچینگ و اینورتوری
- ↲ مدارات مخابراتی
- ↲ میکروکنترلرهای AVR
- ↲ آموزش و مثالها AVR
- ↲ طرح آماده و کامل شده AVR
- ↲ میکروکنترلرهای ARM
- ↲ سایر میکروکنترولرها و پردازندهها
- ↲ سایر میکروکنترلرها
- ↲ مدار مجتمع برنامه پذیر FPGA
- ↲ رباتیک
- ↲ اخبار و مصاحبه ها در رباتیک
- ↲ آموزش و مقالات رباتیک
- ↲ پروژهها تکمیل شده رباتیک
- ↲ مدارها و مکانیک در رباتیک
- ↲ رباتهای پرنده
- ↲ برق و الکترونیک عمومی
- ↲ تعمیر لوازم برقی
- ↲ اخبار برق و الکترونیک
- بخش بازيهاي رايانهاي
- ↲ بازيهاي رايانهاي
- ↲ كنسولهاي بازي
- ↲ PSP
- ↲ اخبار بازيها
- بخش تجاري اقتصادي
- ↲ بخش اقتصادی و مالی
- ↲ تجارت آنلاين
- ↲ بورس
- ↲ تحلیل و سیگنال روز
- ↲ کار آفرینی
- بخشهاي متفرقه
- ↲ بخش ويژه
- ↲ ساير گفتگوها
- ↲ صندلي داغ
- ↲ اخبار و حوادث
- ↲ انجمن ورزش
- ↲ آکواريوم و ماهيهاي زينتي
- ↲ معرفي سايتها و وبلاگها