سرفصلهای جاوا پیشرفته JavaEE
مخاطبین دوره: این دوره برای افرادی در نظر گرفته شده که تمایل به تولید برنامه های کاربردی تحت وب و یا کلان را دارند. همچنین افرادی که قصد ورود به بازار کار را دارند با گذراندن این دوره میتوانند با تکنولوژیهای جدید توسعه آشنایی پیدا کنند.
بخش ۱: آموزش برنامهنویسی پویا
در این بخش به معرفی برنامهنویسی پویا و مزایای استفاده از بستر وب برای تولید برنامه و نقش جاوا در این نوع از برنامه ها خواهیم پرداخت.
بخش ۲: آموزش کار با Application Server
- معرفی اپلیکیشن سرورهای مختلف در جاوا
- آموزش نصب و راه اندازی Apache Tomcat Application Server
- آموزش تنظیمات اپلیکیشن سرور
- آموزش راه اندازی برنامههای جاوا در اپلیکیشن سرور
بخش ۳: آموزش JSP
Java Server Pages یا به اختصار JSP یک فناوری برای توسعه صفحات وب است و از محتوای پویا پشتیبانی میکند این فناوری به توسعه دهندگان کمک می کند تا با استفاده از تگهای ویژه JSP، کدهای جاوا را در صفحاتHTML وارد کنند. با استفاده از JSP، می توانید از طریق فرمها، اطلاعات کاربران را جمع آوری کنید، سوابق را از یک پایگاه داده یا منابع دیگر بخوانید و صفحات وب را به صورت پویا ایجاد کنید. ما در این آموزش به بررسی مدل استفاده از JSP و همچنین ارسال و دریافت اطلاعات از صفحات وب از طریق JSP به یک پایگاه داده خواهیم پرداخت.
- آموزش چگونگی استفاده از کدهای جاوا در کدهای HTML
- بررسی تگهای JSP
- آموزش JSP directives
- بررسی Exception Handling در صفحات JSP
- آموزش ارسال و دریافت اطلاعات در صفحات JSP
- آموزش کار با Session و Cookie در صفحات JSP
- آموزش استفاده از تگهای JSTL
بخش ۴: آموزش Servlet جاوا
Servlet را میتوان یک تکنولوژی برای ساخت وب اپلیکیشنها دانست. یک Servlet، کلاس جاوایی است که میتواند به درخواستهای HTTP که به یک URL خاص ارسال میشود پاسخ دهد. وقتی کاربر از طریق مرورگر یک درخواست HTTP به Servlet container می فرستد، Servlet container پس از دریافت آن درخواست Servlet متناظر با URL درخواست را پیدا میکند و از servlet میخواهد جواب HTTP برای کاربر تولید کند و جواب HTTP تولید شده توسط servlet را برای نمایش به کاربر به مرورگر ارسال میکند. با استفاده از Servlets، میتوانید ورودیهای کاربران را از طریق فرمهای صفحه وب جمعآوری کنید، سوابق را از پایگاه داده یا منبع دیگری ارائه دهید و صفحات وب را به صورت پویا ایجاد کنید. در تصویر زیر نحوه دریافت و پاسخ یک Servlet را مشاهده میکنید.
در این آموزش با تنظیمات اولیه یک Servlet اشنا میشویم و برنامهای مبتی بر Servlet پیادهسازی میکنیم تا تمامی مراحل ارسال و دریافت اطلاعات از طریق Servlet به پایگاه داده رو آموزش دهیم.
- آموزش ساخت و راه اندازی وب اپلیکیشن با استفاده از Servlet
- بررسی متدهای مختلف Servlet مانند get و post و ....
- آموزش فراخوانی یک Servlet از Servlet دیگر
- آموزش چرخه حیات Servlet و تفاوت بین RequestDispatcher و Redirect
- آموزش استفاده از sendRedirect و بررسی URL rewriting در Servlet
- آموزش کار با Session و Cookie در 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 پیاده سازی خواهیم کرد.
- بررسی مفاهیم DBMS, SQL, ORM, JPA
- مقدمه ای بر Hibernate ORM و تاریخچه پیدایش آن
- آموزش معماری Hibernate و پیکربندی پروژه
- آموزش کار با Annotation ها و ساخت Model ها توسط آن
- ساخت Data Base براساس Class Diagram
- نوشتن اطلاعات در پایگاه داده (Create)
- خواندن اطلاعات از پایگاه داده (Retrieve)
- حذف از پایگاه داده (Delete)
- بروزرسانی اطلاعات در پایگاه داده (Update)
- بررسی انواع استراتژی های موجود برای واکشی داده ها از DB (Fetching Strategy)
- آموزش کار با زبان Hibernate Query Language (HQL)
- آموزش Mapping در جاوا One-to-One, Many-to-One, One-to-Many, Many-to-Many
- آموزش مفهوم Cascade Types
بخش ۷: آموزش پیادهسازی وب سرویس مبتنی بر REST
وب سرویسها، سرویسهای نرم افزاری هستند که تحت پروتکلهای مشخص وب مانند HTTP با استانداردهای مشخص کار میکنند. وب سرویسها مستقل از زبان برنامه نویسی هستند و مفهوم یکسانی در زبانهای برنامه نویسی مختلف دارند. سیستمهای نرمافزاری از ماژولهای مختلفی تشکیل شدهاند که باید مستقل از یکدیگر و در کنار یکدیگر بتوانند کار کنند. ماژولها هر کدام میتوانند با زبانهای برنامه نویسی مختلفی پیادهسازی شوند. برای ایجاد ارتباط بین این ماژولها از وب سرویسها استفاده میشود.
RESTful یا Representational State Transfer یک نوعی از وب سرویس است ما در این آموزش به بررسی مفاهیم آن خواهیم پرداخت و سپس با نحوه پیادهسازی این وب سرویس در زبان برنامه نویسی جاوا آشنا میشویم.
- مقدمه ای بر مفهوم وب سرویس ها
- آموزش مفاهیم Client Server در Rest
- آموزش مفهوم State Less بودن Request ها در REST API
- آموزش مفهوم Cacheable بودن Request ها در REST
- آموزش و معرفی پایهای JAX-RS
- آموزش استفاده از برخی Annotationها در پیادهسازی وب سرویس
- آموزش پردازش JSON در ورودی و خروجی وب سرویسها
- آموزش مفاهیم اساسی حاکم بر وب سرویسها همچون Status Code ها و انواع خروجی
- آموزش پیاده سازی کلاینت Rest در جاوا
بخش ۸: آموزش کار با API ایمیل در جاوا JavaMail
- آموزش تنظیمات اولیه ایمیل در جاوا
- آموزش ارسال و دریافت ایمیل
- آموزش اتصال به سرور Gmail SMTP
بخش ۹: آموزش تزریق وابستگی (Dependency Injection)
- آشنایی با وابستگی و مشکلات آن
- معرفی اصل معکوس سازی وابستگی
- آشنایی با تزریق وابستگی
- چندین پیاده سازی برای یک سرویس
بخش ۱۰: آموزش فریمورک Spring و اجزای آن
Spring یک فریمورک متن باز برای برنامههای کاربردی و همچنین محبوبترین فریمورک در جاوا است. هدف از ایجاد این فریمورک توسعه و ایجاد نرم افزارهای Enterprise است.Spring بر پایه برنامهنویسی جنبه گرا (aspect oriented) و معکوس کردن کنترل (inversion of control) طراحی شده است. Spring به شکل ماژولار طراحی شده است و از ماژول های مختلف برای رفع نیاز برنامه نویسان استفاده میکند. قسمت وب spring بر مبنای معماری mvc ساخته شده است. ما در این آموزش به موارد زیر در فریمورک Spring اشاره خواهیم کرد همچنین نیازهای بازار کار نیز در بخش در نظر گرفته شده است تا بعد از آموزش به راحتی بتوانید پروژههای مختلف رو با این فریمورک پیادهسازی کنید برخی از مهمترین موضوعاتی که در این آموزش به آن اشاره خواهیم کرد شامل موارد زیر میشود.
- معرفی چهارچوب Spring و اجزای آن
- آموزش مفهوم Inversion of Control یا وابستگی معکوس
- مفهوم تزریق وابستگی یا Dependency injection
- مفهوم جستجوی وابستگی یا Dependency lookup
- مقدمه ای بر Spring container
- آموزش پیکربندی فایلهای Spring
- آموزش پیکربندی با استفاده از Annotation
- آموزش چرخه حیات Bean ها در Spring
- آموزش استراتژیهای مقدار دهی Bean ها در Spring یا Initialized Strategy
- آموزش حوزه فعالیت Bean ها یا Bean Scope
- آموزش ساختار پروژه در Spring Boot
- آموزش پیادهسازی وب اپلیکیشن با معماری Spring MVC
- آموزش پیادهسازی صفحات با Thymeleaf
- آموزش پیاده سازی Controller و Annotation های مورد نیاز
- آموزش ساخت Model
- آموزش کار با Hibernate و پیکربندی آن در Spring
- آموزش Spring Data و اتصال به پایگاه داده
- آموزش کار با Spring Security و تنظیمات آن در وب اپلیکیشن
بخش ۱۱: آموزش امنیت
JSON Web Token (JWT) یک استاندارد میباشد که روشی کم حجم و جامعی را برای انتقال امن اطلاعات بین طرفین، در قالب یک JSON object تعریف میکند. این اطلاعات تبادل شده، مطمئن و قابل اعتماد میباشند زیرا به صورت دیجیتالی امضا شدهاند. توکن را میتوان با استفاده از یک Secret یا جفت کلید عمومی و خصوصی امضا نمود. یکی از متداولترین استفادههای JWT در فرآیند احراز هویت میباشد. پس از اینکه فرایند احراز هویت یک کاربر انجام شد، تمامی منابع، سرویسها و .. که کاربر میتواند به آن دسترسی پیدا کند به وسیله JWT فراهم میشود.
- آموزش امنیت مبتنی بر نقش (Role Base Security)
- آموزش انواع رمز گذاری مزایا و معایب هر کدام
- آموزش رمز گذاری اطلاعات با فرمتهای مختلف
- آموزش امنیت مبتنی بر Token و ایمن سازی WEB API بر اساس JWT Token
- آموزش راه اندازی سرویس احراز هویت برمبنای توکن JWT
- آموزش تعریف دسترسی به سرویسهای مختلف
بخش ۱۲: آموزش کوئرینویسی
- آموزش کوئرینویسی در Hibernate
- آموزش کوئرینویسی به وسیله Spring Data
- آموزش Insert و Update و Delete نمونه رکوردها
- آموزش جستجو رشتهها با استفاده از تابع Starts With در Spring Data JPA
- آموزش جستجو رشته ها با استفاده از تابع Ends With در Spring Data JPA
- آموزش جستجو رشته ها با استفاده از تابع Contains در Spring Data JPA
- آموزش مرتب سازی دادهها با استفاده از Order By
- آموزش Join در Spring Data JPA
- آموزش جستجو پیشرفته در Spring Data JPA
پروژه دوره:
در این دوره پروژه سامانه ثبت و مشاهده جرایم رانندگی پیادهسازی و آموزش داده خواهد. از ابتدای دوره با آموزش هر بخش پروژه مبتنی بر تکنولوژی یا فریمورک آموزش داده شده پیاذه سازی خواهد شد. تمامی سرویسهای به صورت API آموزش داده خواهد این پروژه شامل موارد زیر خواهد بود.
- ثبت، حذف و بروزرسانی کاربران
- جستجوی کاربران
- ثبت، حذف و بروزرسانی خودروها
- جستجوی خودروها
- ثبت و مشاهده جرایم مربوط به هر خودرو
- نمایش اطلاعات کاربران، خودروها و جرایم
- نمایش گزارشات مرتبط با جرایم خودروها