• Направления обучения
  • Все курсы
  • Статьи
  • Контакты

Web приложение - My Blog


Web приложение - My Blog  $30$12.99
Категория: Java Enterprise Edition
  • 31 урок
  • Длительность: 7:50:22
  • Исходный код
  • Обзор результата
  • UI макеты
  • 4742 просмотра
Купить курс

Описание курса


В рамках данного курса будет написано Web приложение с использованием Java технологий: Servlets, JSP, JSTL, JDBC.

В качестве среды разработки будет использовано IDE Eclipse. В качестве UI будет выбран готовый HTML шаблон и на его базе будет создано полноценное web приложение.

Курс состоит из 31 урока длительностью в среднем около 15 минут каждый, таким образом, выделяя по часу в день (15 минут на просмотр видео и 45 минут на выполнение задания), Вы освоите данный материал за 1 месяц

Выполняя по 5 уроков в день, работая 8 часов, Вы освоите данный материал за одну рабочую неделю (40 часов)

Курс ориентирован на Java разработчиков, которые освоили Java Core и познакомились с Java Servlets & JSP API. Цель курса закрепить практические знания по Servlet & JSP

Life demo: http://blog-devstudy.rhcloud.com (Если открыв ссылку Вы получили Service Temporarily Unavailable ошибку, просто обновите несколько раз страницу. В рамках бесплатного тарифа OpenShift, если приложением долго не пользуются OpenShift выгружает его из оперативной памяти, поэтому и возникает данная ошибка)

Для получения дополнительной информации по теме данного курса, рекомендуем следующие источники информации:

  • Servlet документация
  • JSP Tutorial

В рамках данного курса Вы научитесь


  • Проектировать и создавать реляционные базы данных;
  • Создавать web приложение на базе существующего шаблона;
  • Использовать шаблон MVC для создания web системы любой сложности;
  • Разбивать вашу будущую систему на отдельные модули с четким разграничением ответственности для каждого из них;
  • Писать чистый и понятный другому программисту код;
  • Использовать инструмент maven для создания web приложения;
  • Загружать Java приложение на хостинг OpenShift;
  • А также повысите Ваши знания в области Servlets, JSP, JSTL, JDBC, HTML.

Для успешного прохождения курса необходимо


  • Java core: (Classes, IO, Collections, Exceptions, JDBC) (Для получения этих знаний рекомендуем курс Основы Java SE - HTTP сервер);
  • Базовые знания SQL (select, insert, update, delete, основы транзакций) (Для получения этих знаний рекомендуем курс Основы SQL);
  • Знакомство с Servlets и JSP технологиями. (Для получения этих знаний рекомендуем курс Web приложение - IShop);
  • Базовые знания HTML, CSS, JavaScript. (Для получения этих знаний рекомендуем курс Макет интернет магазина - IShop).

План курса


  • 1
    Постановка задачи и описание функций web приложения
    Длительность урока: 11:53

    Создание web приложения "Мой блог" на базе HTML шаблона, найденного в интернете, со следующими функциями:

    1. Отображение списка категорий статей;
    2. Отображение списка всех статей, отсортированных по убыванию времени создания;
    3. Отображение списка статей для выбранной категории, отсортированных по убыванию времени создания;
    4. Поиск статей по ключевому слову в названии статьи и ее тексту. (Для упрощения подразумеваем поиск по точному слову или словосочетанию);
    5. Постраничное отображение информации для списка статей и результатов поиска;
    6. Отображение информации о статье и обновление счетчика просмотров;
    7. Интеграция с социальными сервисами для шаринга информации о статье;
    8. Загрузка комментариев к статье;
    9. Написание нового комментария к статье;
    10. Аутентификация через социальные сети, как наиболее простой и широко распространенный способ на сегодняшний день, на примере Google+;
    11. Импорт профиля пользователя (имя, email, аватар) с Google+ при создании комментария;
    12. Отправка уведомления о новом комментарии на email владельца блога;
    13. Отправка запроса Contact Form на email владельца блога;
    14. Обработка ошибок: 404, ошибки времени выполнения, валидация данных;
    15. Отображение простых страниц на примере about.
  • 2
    Установка и настройка окружения
    Длительность урока: 12:33
    1. FireFox - HTML браузер (https://www.mozilla.org/en-US/firefox/new/);
    2. Firebug - плагин для FireFox, который позволяет просматривать структуру страницы и параметров HTTP запросов (http://getfirebug.com/);
    3. JDK 1.7 и настройка JAVA_HOME (http://www.oracle.com/technetwork/java/javase/downloads/index.html);
    4. Tomcat 8.0 и запуск в debug режиме (https://tomcat.apache.org/);
    5. Postgresql 9.5.0 - сервер базы данных (http://www.postgresql.org/download/);
    6. PgAdmin - админпанель для работы с Postgresql;
    7. SQL Manager Postgres - SQL клиент для работы с сервером Postgresql (http://www.sqlmanager.net/en/products/postgresql/manager);
    8. Eclipse Mars - IDE для разработки на Java (http://www.eclipse.org/downloads);
    9. Git for windows - инструмент системы контроля версий Git for windows (https://git-scm.com/download/win).
  • 3
    Создание maven проекта
    Длительность урока: 14:33
    1. Создание нового maven проекта в Eclipse;
    2. Подключение зависимостей servlet-api, jsp-api и jstl;
    3. Подключение логгера logback;
    4. Настройка компилятора maven;
    5. Создание базовых пакетов проекта;
    6. Создание структуры директории webapp;
    7. Настройка Servlets 3.1 в web.xml;
    8. Создание репозитория на github;
    9. Загрузка проекта на github.
  • 4
    Создание базы данных
    Длительность урока: 16:38
    1. Создание пользователя и базы данных через pgAdmin;
    2. Создание таблиц: category, article, account, comment;
    3. Создание последовательностей;
    4. Создание внешних ключей;
    5. Создание индексов;
    6. Создание дампа базы данных;
    7. Загрузка дампа базы данных на github.
  • 5
    Заполнение тестовыми данными
    Длительность урока: 13:48
    1. Генератор текста на примере http://www.blindtextgenerator.com/lorem-ipsum;
    2. Генератор имен на примере http://names.mongabay.com/male_names.htm;
    3. Генератор картинок различного расширения на примере https://placeimg.com/;
    4. Генератор аватарок на примере https://placeimg.com/;
    5. Использование социальных сетей для генерации аватарок;
    6. Загрузка генератора тестовых данных на github.
  • 6
    Создание шаблона страниц и NewsController
    Длительность урока: 19:05
    1. Создание шаблона всех JSP страниц проекта;
    2. Создание AbstractController;
    3. Создание NewsController и news.jsp;
    4. Запуск проекта на Tomcat;
    5. Настройка Eclipse проекта для запуска без deploy;
    6. Загрузка всех изменений текущего урока на github.
  • 7
    Создание всех контроллеров проекта
    Длительность урока: 11:41
    1. Создание ApplicationListener;
    2. Создание ArticleСontroller и article.jsp;
    3. Создание ContactСontroller и contact.jsp;
    4. Создание AboutСontroller и about.jsp;
    5. Создание SearchСontroller и search.jsp;
    6. Коррекция ссылок в проекте;
    7. Запуск проекта на Tomcat;
    8. Загрузка всех изменений текущего урока на github.
  • 8
    Декомпозиция JSP
    Длительность урока: 14:39
    1. Декомпозиция и форматирование page-template.jsp;
    2. Декомпозиция и форматирование article.jsp;
    3. Скачивание файлов шрифтов для иконок;
    4. Запуск проекта на Tomcat;
    5. Загрузка всех изменений текущего урока на github.
  • 9
    Создание менеджера всех сервисов проекта
    Длительность урока: 15:28
    1. Создание интерфейса BusinessService;
    2. Создание класса BusinessServiceImpl;
    3. Создание application.properties;
    4. Создание singleton ServiceManager;
    5. Создание AppUtil;
    6. Получение BusinessService в AbstractControler;
    7. Запуск проекта на Tomcat;
    8. Загрузка всех изменений текущего урока на github.
  • 10
    Обработка ошибок в проекте
    Длительность урока: 13:33
    1. Создание ErrorController и error.jsp;
    2. Реализация ErrorHandlerFilter;
    3. ApplicationException и ValidateException;
    4. 404 ошибка;
    5. Запуск проекта на Tomcat;
    6. Демонстрация обработки ошибок;
    7. Загрузка всех изменений текущего урока на github.
  • 11
    Создание сущностей проекта
    Длительность урока: 15:00
    1. Создание AbstractModel;
    2. Создание AbstractEntity;
    3. Создание классов сущностей: Category, Article, Account, Comment;
    4. Создание класса Items<T>;
    5. Avatar placeholder;
    6. Запуск проекта на Tomcat;
    7. Загрузка всех изменений текущего урока на github.
  • 12
    Отображение категорий статей из базы данных
    Длительность урока: 15:15
    1. Использование библиотеки commons-dbutils;
    2. Добавление зависимости в pom.xml;
    3. Создание SQLDAO компонента для получение объектов-сущностей из базы данных;
    4. Создание ResultSetHandler для категорий;
    5. Создание метода mapCategories в BusinessService;
    6. Вызов метода в AppContextListener;
    7. Реализация categories-dropdown.jsp;
    8. Реализация categories-table.jsp;
    9. Запуск проекта на Tomcat;
    10. Загрузка всех изменений текущего урока на github.
  • 13
    Отображение всех статей блога
    Длительность урока: 17:20
    1. Создание метода listArticles в BusinessService;
    2. Реализация метода getOffset();
    3. Изменение контроллера NewsController;
    4. Изменение news.jsp;
    5. Запуск проекта на Tomcat;
    6. Загрузка всех изменений текущего урока на github.
  • 14
    Отображение статей по категориям
    Длительность урока: 13:18
    1. Создание listArticles для категорий в BusinessService;
    2. Создание findCategoryByUrl в BusinessService;
    3. Изменение контроллера NewsController;
    4. Изменение categories-dropdown.jsp;
    5. Изменение categories-table.jsp;
    6. Запуск проекта на Tomcat;
    7. Загрузка всех изменений текущего урока на github.
  • 15
    Реализация поиска по статьям
    Длительность урока: 11:15
    1. Создание listArticles для поиска в BusinessService;
    2. Реализация SearchController;
    3. Отображение результатов поиска и ранее введенного поискового запроса;
    4. Изменение action поисковой формы (Важность метода GET при поиске);
    5. Запуск проекта на Tomcat;
    6. Загрузка всех изменений текущего урока на github.
  • 16
    Реализация постраничного отображения
    Длительность урока: 18:01
    1. Модель постраничного отображения;
    2. Класс Pagination, который будет описывать указанную модель;
    3. Класс PageItem и статические методы;
    4. Шаблон Builder для Pagination;
    5. Параметры Builder для Pagination;
    6. Работа компонента Pagination;
    7. Создание тега для постраничного отображения;
    8. Использование объекта Pagination;
    9. Запуск проекта на Tomcat;
    10. Загрузка всех изменений текущего урока на github.
  • 17
    Просмотр и отображение статьи
    Длительность урока: 15:59
    1. Создание viewArticle в BusinessService;
    2. Правила url для статьи и правила их парсинга;
    3. Создание RedirectToValidUrlException;
    4. Изменение ArticleController для отображения статей без комментариев;
    5. Изменение ссылок на статьи;
    6. Запуск проекта на Tomcat;
    7. Загрузка всех изменений текущего урока на github.
  • 18
    Навигация по системе
    Длительность урока: 9:59
    1. news для news страницы;
    2. news для всех остальных страниц;
    3. news / category для выбранной категории;
    4. news / category / article для статьи;
    5. Запуск проекта на Tomcat;
    6. Загрузка всех изменений текущего урока на github.
  • 19
    Отображение комментариев для статьи
    Длительность урока: 15:15
    1. Создание listComments в BusinessService;
    2. Изменение ArticleController;
    3. Изменение article.jsp;
    4. Логика отображения кнопки loadMore;
    5. Запуск проекта на Tomcat;
    6. Загрузка всех изменений текущего урока на github.
  • 20
    Загрузка комментариев для Load More кнопки
    Длительность урока: 17:26
    1. Реализация MoreCommentsController в пакете ajax;
    2. Индикатор загрузки loading.gif;
    3. Создание js функции moreComments;
    4. Запуск проекта на Tomcat;
    5. Загрузка всех изменений текущего урока на github.
  • 21
    Интеграция с Google+ на стороне клиента
    Длительность урока: 15:29
    1. Создание проекта в google console (https://console.developers.google.com);
    2. Создание API key и добавление его в application.properties;
    3. Создание кнопки "Залогиниться" на основании рекомендаций https://developers.google.com/identity/sign-in/web/;
    4. Создание методов onSignIn и gpLogout();
    5. google_signin_client_id и meta теги  
    6. submitComment() для логина в Google+;
    7. Запуск проекта на Tomcat;
    8. Загрузка всех изменений текущего урока на github.
  • 22
    Проработка UI для создания нового комментария
    Длительность урока: 13:20
    1. Создание CommentForm;
    2. Mock метод createComment;
    3. Создание NewCommentController;
    4. Валидация данных для нового комментария;
    5. Реализация метода submitComment();
    6. Запуск проекта на Tomcat;
    7. Демонстрация работы ajax;
    8. Загрузка всех изменений текущего урока на github.
  • 23
    Создание социальных сервисов на сервере
    Длительность урока: 18:04
    1. Создание SocialAccount;
    2. Создание SocialService;
    3. Реализация GooglePlusSocialService;
    4. Создание AvatarService;
    5. Библиотека thumbnailator 0.4.8;
    6. Реализация FileStorageAvatarService;
    7. Загрузка всех изменений текущего урока на github.
  • 24
    Логика создание нового комментария
    Длительность урока: 18:21
    1. Создание метода createForm, используя библиотеку commons-beanutils;
    2. Методы в SQLDAO для создания нового комментария;
    3. Реализация логики создания нового комментария;
    4. Запуск проекта на Tomcat;
    5. Проверка алгоритма создания нового комментария;
    6. Пошаговая демонстрация работы метода createComment;
    7. Загрузка всех изменений текущего урока на github.
  • 25
    Логика интернационализации и валидации форм
    Длительность урока: 13:55
    1. Создание i18n/messages;
    2. Заполнение данными;
    3. Создание i18nService;
    4. Создание AbstractForm и метода для валидации;
    5. Переопределение метода валидации для CommentForm;
    6. Валидация для createComment;
    7. Необходимость валидации на стороне сервера при наличии валидации на стороне клиента;
    8. Запуск проекта на Tomcat;
    9. Загрузка всех изменений текущего урока на github.
  • 26
    Реализация сервиса уведомлений
    Длительность урока: 15:15
    1. Создание NotificationService;
    2. Реализация AsyncEmailNotificationService с использованием commons-email 1.4;
    3. Новые свойства в application.properties;
    4. ExecutorService для асинхронной отправки;
    5. Добавление уведомления после создания нового комментария;
    6. Запуск проекта на Tomcat;
    7. Загрузка всех изменений текущего урока на github.
  • 27
    Обработка формы обратной связи
    Длительность урока: 11:11
    1. Класс формы обратной связи: ContactForm
    2. Обработка запроса пользователя;
    3. Изменение ContactController;
    4. Добавление поддержки success уведомления на contact.jsp;
    5. Запуск проекта на Tomcat;
    6. Загрузка всех изменений текущего урока на github.
  • 28
    Интернационализация JSP/JS и социальные сервисы
    Длительность урока: 11:49
    1. Тег message.tag;
    2. Демонстрация интернационализации JSP файлов на примере использование тега на error.jsp;
    3. Файл динамических js сообщений - messages.jsp;
    4. Использование сервиса addthis.com для интеграции с социальными сервисами;
    5. Запуск проекта на Tomcat;
    6. Загрузка всех изменений текущего урока на github.
  • 29
    Рефакторинг и FAQ по архитектуре проекта
    Длительность урока: 23:28
    1. Рефакторинг кода на примере созданных классов в рамках проекта;
    2. Загрузка изменений на github;
    3. Сортировка по id для статей и комментариев и ее несоответствие времени создания;
    4. Отличие констант в файле app.properties и классе Constants;
    5. Использование приставки Abstract в некоторых классах проекта;
    6. Порядок следования методов в ServiceManager и BusinessServiceImpl;
    7. Аргументация создания ValidateException checked исключением
    8. Отличие преобразования ValidateException в ApplicationException на контроллере от SQLException в ApplicationException в сервисе
    9. Причина отсутствия DAO интерфейса
    10. Аргументация игнорирования i18nService в валидации форм
    11. Причина наличия комментариев только для двух методов в BusinessService
    12. Отличие приставки get от find
    13. Использование конструкторов и классов сервисов с модификатором package
    14. Использование модификаторов package и final для полей ServiceManager
  • 30
    Обзор архитектуры и подготовка к загрузке на хостинг
    Длительность урока: 17:37
    1. Сравнение реализации бизнес метода createComment и диаграммы, на базе которой проектировалось приложение;
    2. Возможности компонентного подхода при изменении логики работы приложения;
    3. Создание DemoNotificationService
    4. Создание DemoBusinessService
    5. Демонстрация работы изменений;
    6. Загрузка всех изменений текущего урока на github.
  • 31
    Загрузка проекта на хостинг OpenShift
    Длительность урока: 19:14
    1. Ценовая политика хостинга OpenShift https://www.openshift.com/pricing/plan-comparison.html;
    2. Создание домена на OpenShift;
    3. Создание публичного ключа на OpenShift;
    4. Использование Putty, Puttygen, Pageant (http://www.putty.org/) и WinSCP http://winscp.net
    5. Создание приложения на OpenShift;
    6. Добавление базы данных Postgresql на OpenShift;
    7. Формирование и загрузка дампа базы данных Postgresql на OpenShift;
    8. Загрузка приложения на OpenShift;
    9. Демонстрация работы приложения: http://blog-devstudy.rhcloud.com
DevStudy.net На главную Направления обучения Все курсы Статьи FAQ

Контакты:


Udemy: devstudy_net

Email: devstudy.net@gmail.com


Наша миссия:

Дать возможность любому желающему начать работать в IT с минимальными начальными вложениями!



Актуальные вакансии:

jobeka iconВакансии разработчик баз данных на Jobeka jobsora iconВакансии Java разработчик на Jobsora jooble iconВакансии Java разработчик на Jooble