سرفصلهای جاوا پیشرفته JavaEE
مخاطبین دوره: این دوره برای افرادی در نظر گرفته شده که تمایل به تولید برنامه های کاربردی تحت وب و یا کلان را دارند. همچنین افرادی که قصد ورود به بازار کار را دارند با گذراندن این دوره میتوانند با تکنولوژیهای جدید توسعه آشنایی پیدا کنند.
بخش ۱: آموزش برنامهنویسی پویا
در این بخش به معرفی برنامهنویسی پویا و مزایای استفاده از بستر وب برای تولید برنامه و نقش جاوا در این نوع از برنامه ها خواهیم پرداخت.
بخش ۲: آموزش کار با Application Server
بخش ۳: آموزش JSP
Java Server Pages یا به اختصار JSP یک فناوری برای توسعه صفحات وب است و از محتوای پویا پشتیبانی میکند این فناوری به توسعه دهندگان کمک می کند تا با استفاده از تگهای ویژه JSP، کدهای جاوا را در صفحاتHTML وارد کنند. با استفاده از JSP، می توانید از طریق فرمها، اطلاعات کاربران را جمع آوری کنید، سوابق را از یک پایگاه داده یا منابع دیگر بخوانید و صفحات وب را به صورت پویا ایجاد کنید. ما در این آموزش به بررسی مدل استفاده از JSP و همچنین ارسال و دریافت اطلاعات از صفحات وب از طریق JSP به یک پایگاه داده خواهیم پرداخت.
بخش ۴: آموزش Servlet جاوا
Servlet را میتوان یک تکنولوژی برای ساخت وب اپلیکیشنها دانست. یک Servlet، کلاس جاوایی است که میتواند به درخواستهای HTTP که به یک URL خاص ارسال میشود پاسخ دهد. وقتی کاربر از طریق مرورگر یک درخواست HTTP به Servlet container می فرستد، Servlet container پس از دریافت آن درخواست Servlet متناظر با URL درخواست را پیدا میکند و از servlet میخواهد جواب HTTP برای کاربر تولید کند و جواب HTTP تولید شده توسط servlet را برای نمایش به کاربر به مرورگر ارسال میکند. با استفاده از Servlets، میتوانید ورودیهای کاربران را از طریق فرمهای صفحه وب جمعآوری کنید، سوابق را از پایگاه داده یا منبع دیگری ارائه دهید و صفحات وب را به صورت پویا ایجاد کنید. در تصویر زیر نحوه دریافت و پاسخ یک Servlet را مشاهده میکنید.
در این آموزش با تنظیمات اولیه یک Servlet اشنا میشویم و برنامهای مبتی بر Servlet پیادهسازی میکنیم تا تمامی مراحل ارسال و دریافت اطلاعات از طریق Servlet به پایگاه داده رو آموزش دهیم.
بخش ۵: آموزش معماری لایه ای MVC
MVC که مخفف Model-View-Controller است، یک قالب معماری است که برنامه را از نظر منطقی به سه کامپوننت اصلی مدل (Model)، ویو (View) و کنترلر (Controler) تقسیم میکند. هر یک از این کامپوننتها برای مدیریت جنبه خاصی از توسعه یک برنامه ساخته می شود. این معماری با بهره مندی از فلسفه Separation of Concerns همه بخش های یک پروژه نرم افزاری را از همدیگر مستقل میکند.
Model تمامی دادهها و منطق مربوط به آنها را شامل میشود. داده ها و منطق مربوط به آنها در کامپوننت مدل ذخیره میشود. این کامپوننت، داده هایی که در میان کامپوننتهای کنترلر یا هر منطق تجاری دیگری انتقال داده میشوند را نمایش میدهد. برای مثال، یک آبجکت کنترلر اطلاعات کاربر را از پایگاه داده بازیابی و آن را دستکاری کرده و دوباره به پایگاه داده میفرستد یا آن را برای انتقال دادههای یکسان بکار میگیرد. کامپوننت مدل به درخواستهای فرستاده شده از View و همینطور دستوراتController پاسخ میدهد تا خود را بروزرسانی کند. این بخش همینطور پایین ترین سطح از قالب است که مسئول حفظ و نگهداری داده هاست.
View بخشی از یک برنامه است که مسئولیت نمایش اطلاعات را بعهده دارد. ویوها بوسیله دادههای جمع آوری شده از دادههای مدل ایجاد میشوند
Controller رابط کاربری میان کامپوننتهای View و Model است. کنترلر بخشی از یک برنامه است که تعامل کاربر با برنامه را مدیریت میکند. کنترلر، ورودیهای کیبورد و موس را تفسیر کرده، و به مدل و ویو اطلاع رسانی میکند تا تغییرات را بصورت مناسب اعمال کند. کنترلر دستورات را به مدل میفرستد تا وضعیت خود را بروزرسانی کند. کنترلر همینطور دستورات را به ویو مربوطه ارسال میکند تا نمایش ویو را تغییر دهد.
در این آموزش ما مدل MVC را به کمک JSP و Servlet در جاوا پیادهسازی خواهیم کرد و پروژهای برای ذخیره و بازیابی اطلاعات از دیتابیس با پیادهسازی مدل MVC خواهیم ساخت.
· معرفی معماری لایهای
· آموزش پیادهسازی وب اپلیکیشن با استفاده از JSP و Servlet منطبق بر معماری MVC
بخش ۶: آموزش فریمورک Hibernate و همچنین کار با JPA
تکنولوژی ORM یا Object-relational mapping به برنامه نویس این امکان را میدهد تا دیدگاه خود را نسبت به جداول موجود در پایگاه داده را تغییر دهد و به دیدگاه شیگرایی تبدیل کند. یعنی رفتاری مشابه کلاسهای جاوا را میتوان با جدولهای پایگاه داده و متادیتای آن داشته باشیم. چرا که با روش های پیشین یعنی SQL مشکلات و محدودیتهایی مواجه هستیم که سعی می کنیم با ORMها این مشکلات را حل و روند کار را سادهتر کنیم.
ORM یک Code Library است که انتقال خودکار داده هایی که در جدول های یک پایگاه داده رابطه ای ذخیره شده اند را به آبجکتهایی که بطور معمول در کد برنامه استفاده می شوند، امکانپذیر میسازد. رویکرد Code First در میان برنامهنویسانی که از معماری MVC استفاده میکنند بسیار معمول است. در این روش، کنترل کامل بر روی کد صورت میگیرد. با استفاده از این رویکرد میتوان تمامی فعالیت پایگاه داده را با استفاده از کد پیادهسازی کرد. بنابراین، میتوان گفت در نتیجه استفاده از این رویکرد، تغییراتی که بصورت دستی بر روی پایگاه داده انجام می شدند، حذف می شوند و همه چیز وابسته به کد خواهد بود.
Hibernate محبوبترین ORM موجود در زبان جاوا است. این محبوبیت حاکی از قدرت Hibernate است که حتی با فریمورکهایی نظیر Springنیز قابل تلفیق یا Integrate شدن است. Hibernate به هیچ وجه جایگزین JDBC نمیشود بلکه یک لایه بالاتر از آن و مبتنی بر آن است در واقع Hibernate رابطی است که به برنامه نویسان کمک میکند، بدون درگیر شدن با جزئیات یک پایگاه داده، تمام اعمال مربوط به ذخیره و بازیابی اشیا را مستقل از نوع پایگاه داده انجام دهند. با استفاده از Hibernate برنامهنویسان درگیر ماهیت و تفاوتهای دیتابیسهای مختلف نمیشود.
در این آموزش به بررسی فریمورک Hibernate خواهیم پرداخت و یک پروژه به همراه JPA پیاده سازی خواهیم کرد.
بخش ۷: آموزش پیادهسازی وب سرویس مبتنی بر REST
وب سرویسها، سرویسهای نرم افزاری هستند که تحت پروتکلهای مشخص وب مانند HTTP با استانداردهای مشخص کار میکنند. وب سرویسها مستقل از زبان برنامه نویسی هستند و مفهوم یکسانی در زبانهای برنامه نویسی مختلف دارند. سیستمهای نرمافزاری از ماژولهای مختلفی تشکیل شدهاند که باید مستقل از یکدیگر و در کنار یکدیگر بتوانند کار کنند. ماژولها هر کدام میتوانند با زبانهای برنامه نویسی مختلفی پیادهسازی شوند. برای ایجاد ارتباط بین این ماژولها از وب سرویسها استفاده میشود.
RESTful یا Representational State Transfer یک نوعی از وب سرویس است ما در این آموزش به بررسی مفاهیم آن خواهیم پرداخت و سپس با نحوه پیادهسازی این وب سرویس در زبان برنامه نویسی جاوا آشنا میشویم.
بخش ۸: آموزش کار با API ایمیل در جاوا JavaMail
بخش ۹: آموزش تزریق وابستگی (Dependency Injection)
بخش ۱۰: آموزش فریمورک Spring و اجزای آن
Spring یک فریمورک متن باز برای برنامههای کاربردی و همچنین محبوبترین فریمورک در جاوا است. هدف از ایجاد این فریمورک توسعه و ایجاد نرم افزارهای Enterprise است.Spring بر پایه برنامهنویسی جنبه گرا (aspect oriented) و معکوس کردن کنترل (inversion of control) طراحی شده است. Spring به شکل ماژولار طراحی شده است و از ماژول های مختلف برای رفع نیاز برنامه نویسان استفاده میکند. قسمت وب spring بر مبنای معماری mvc ساخته شده است. ما در این آموزش به موارد زیر در فریمورک Spring اشاره خواهیم کرد همچنین نیازهای بازار کار نیز در بخش در نظر گرفته شده است تا بعد از آموزش به راحتی بتوانید پروژههای مختلف رو با این فریمورک پیادهسازی کنید برخی از مهمترین موضوعاتی که در این آموزش به آن اشاره خواهیم کرد شامل موارد زیر میشود.
بخش ۱۱: آموزش امنیت
JSON Web Token (JWT) یک استاندارد میباشد که روشی کم حجم و جامعی را برای انتقال امن اطلاعات بین طرفین، در قالب یک JSON object تعریف میکند. این اطلاعات تبادل شده، مطمئن و قابل اعتماد میباشند زیرا به صورت دیجیتالی امضا شدهاند. توکن را میتوان با استفاده از یک Secret یا جفت کلید عمومی و خصوصی امضا نمود. یکی از متداولترین استفادههای JWT در فرآیند احراز هویت میباشد. پس از اینکه فرایند احراز هویت یک کاربر انجام شد، تمامی منابع، سرویسها و .. که کاربر میتواند به آن دسترسی پیدا کند به وسیله JWT فراهم میشود.
بخش ۱۲: آموزش کوئرینویسی
پروژه دوره:
در این دوره پروژه سامانه ثبت و مشاهده جرایم رانندگی پیادهسازی و آموزش داده خواهد. از ابتدای دوره با آموزش هر بخش پروژه مبتنی بر تکنولوژی یا فریمورک آموزش داده شده پیاذه سازی خواهد شد. تمامی سرویسهای به صورت API آموزش داده خواهد این پروژه شامل موارد زیر خواهد بود.