Web приложение - My Blog
4.3 (4 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
23 students enrolled

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

Программирование на Java
4.3 (4 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
23 students enrolled
Created by DevStudy .net
Last updated 11/2018
Russian
Current price: $9.99 Original price: $19.99 Discount: 50% off
30-Day Money-Back Guarantee
This course includes
  • 8 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to Udemy's top 3,000+ courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Проектировать и создавать реляционные базы данных;
  • Создавать web приложение на базе существующего шаблона;

  • Использовать шаблон MVC для создания web системы любой сложности;

  • Разбивать вашу будущую систему на отдельные модули с четким разграничением ответственности для каждого из них;
  • Писать чистый и понятный другому программисту код;
  • Использовать инструмент maven для создания web приложения;
  • Загружать Java приложение на хостинг OpenShift;
  • А также повысите Ваши знания в области Servlets, JSP, JSTL, JDBC, HTML.
Course content
Expand all 31 lectures 07:50:23
+ Подготовка к разработке
5 lectures 01:09:25

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

  1. Отображение списка категорий статей;

  2. Отображение списка всех статей, отсортированных по убыванию времени создания;

  3. Отображение списка статей для выбранной категории, отсортированных по убыванию времени создания;

  4. Поиск статей по ключевому слову в названии статьи и ее тексту. (Для  упрощения подразумеваем поиск по точному слову или словосочетанию);

  5. Постраничное отображение информации для списка статей и результатов поиска;

  6. Отображение информации о статье и обновление счетчика просмотров;

  7. Интеграция с социальными сервисами для шаринга (sharing) информации о статье;

  8. Загрузка комментариев к статье;

  9. Написание нового комментария к статье;

  10. Аутентификация через социальные сети, как наиболее простой и широко  распространенный способ на сегодня, на примере Google+;

  11. Импорт профиля пользователя (имя, email, аватар) с Google+ при создании комментария;

  12. Отправка уведомления о новом комментарии на email владельца блога;

  13. Отправка запроса Contact Form на email владельца блога;

  14. Обработка ошибок: 404, ошибки времени выполнения, валидация данных;

  15. Отображение простых страниц на примере about.

Preview 11:53
  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).

Установка и настройка окружения
12: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.

Создание maven проекта
14:33
  1. Создание пользователя и базы данных через pgAdmin;

  2. Создание таблиц: category, article, account, comment;

  3. Создание последовательностей;

  4. Создание внешних ключей;

  5. Создание индексов;

  6. Создание дампа базы данных;

  7. Загрузка дампа базы данных на github.

Создание базы данных
16:38
  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.

Заполнение тестовыми данными
13:48
+ Разработка приложения
23 lectures 05:40:39
  1. Создание шаблона всех JSP страниц проекта;

  2. Создание AbstractController;

  3. Создание NewsController и news.jsp;

  4. Запуск проекта на Tomcat;

  5. Настройка Eclipse проекта для запуска без deploy;

  6. Загрузка всех изменений текущего урока на github.

Создание шаблона страниц и NewsController
19:05
  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.

Создание всех контроллеров проекта
11:41
  1. Декомпозиция и форматирование page-template.jsp;

  2. Декомпозиция и форматирование article.jsp;

  3. Скачивание файлов шрифтов для иконок;

  4. Запуск проекта на Tomcat;

  5. Загрузка всех изменений текущего урока на github.

Декомпозиция JSP
14:39
  1. Создание интерфейса BusinessService;

  2. Создание класса BusinessServiceImpl;

  3. Создание application.properties;

  4. Создание singleton ServiceManager;

  5. Создание AppUtil;

  6. Получение BusinessService в AbstractControler;

  7. Запуск проекта на Tomcat;

  8. Загрузка всех изменений текущего урока на github.

Preview 15:28
  1. Создание ErrorController и error.jsp;

  2. Реализация ErrorHandlerFilter;

  3. ApplicationException и ValidateException;

  4. 404 ошибка;

  5. Запуск проекта на Tomcat;

  6. Демонстрация обработки ошибок;

  7. Загрузка всех изменений текущего урока на github.

Обработка ошибок в проекте
13:33
  1. Создание AbstractModel;

  2. Создание AbstractEntity;

  3. Создание классов сущностей: Category, Article, Account, Comment;

  4. Создание класса Items<T>;

  5. Avatar placeholder;

  6. Запуск проекта на Tomcat;

  7. Загрузка всех изменений текущего урока на github.

Создание сущностей проекта
15:00
  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.

Отображение категорий статей из базы данных
15:15
  1. Создание метода listArticles в BusinessService;

  2. Реализация метода getOffset();

  3. Изменение контроллера NewsController;

  4. Изменение news.jsp;

  5. Запуск проекта на Tomcat;

  6. Загрузка всех изменений текущего урока на github.

Отображение всех статей блога
17:20
  1. Создание listArticles для категорий в BusinessService;

  2. Создание findCategoryByUrl в BusinessService;

  3. Изменение контроллера NewsController;

  4. Изменение categories-dropdown.jsp;

  5. Изменение categories-table.jsp;

  6. Запуск проекта на Tomcat;

  7. Загрузка всех изменений текущего урока на github.

Отображение статей по категориям
13:18
  1. Создание listArticles для поиска в BusinessService;

  2. Реализация SearchController;

  3. Отображение результатов поиска и ранее введенного поискового запроса;

  4. Изменение action поисковой формы (Важность метода GET при поиске);

  5. Запуск проекта на Tomcat;

  6. Загрузка всех изменений текущего урока на github.

Реализация поиска по статьям
11:15
  1. Модель постраничного отображения;

  2. Класс Pagination, который будет описывать указанную модель;

  3. Класс PageItem и статические методы;

  4. Шаблон Builder для Pagination;

  5. Параметры Builder для Pagination;

  6. Работа компонента Pagination;

  7. Создание тега для постраничного отображения;

  8. Использование объекта Pagination;

  9. Запуск проекта на Tomcat;

  10. Загрузка всех изменений текущего урока на github.

Реализация постраничного отображения
18:01
  1. Создание viewArticle в BusinessService;

  2. Правила url для статьи и правила их парсинга;

  3. Создание RedirectToValidUrlException;

  4. Изменение ArticleController для отображения статей без комментариев;

  5. Изменение ссылок на статьи;

  6. Запуск проекта на Tomcat;

  7. Загрузка всех изменений текущего урока на github.

Просмотр и отображение статьи
15:59
  1. news для news страницы;

  2. news для всех остальных страниц;

  3. news / category для выбранной категории;

  4. news / category / article для статьи;

  5. Запуск проекта на Tomcat;

  6. Загрузка всех изменений текущего урока на github.

Навигация по системе
09:59
  1. Создание listComments в BusinessService;

  2. Изменение ArticleController;

  3. Изменение article.jsp;

  4. Логика отображения кнопки loadMore;

  5. Запуск проекта на Tomcat;

  6. Загрузка всех изменений текущего урока на github.

Отображение комментариев для статьи
15:15
  1. Реализация MoreCommentsController в пакете ajax;

  2. Индикатор загрузки loading.gif;

  3. Создание js функции moreComments;

  4. Запуск проекта на Tomcat;

  5. Загрузка всех изменений текущего урока на github.

Загрузка комментариев для Load More кнопки
17:27
  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.

Интеграция с Google+ на стороне клиента
15:29
  1. Создание CommentForm;

  2. Mock метод createComment;

  3. Создание NewCommentController;

  4. Валидация данных для нового комментария;

  5. Реализация метода submitComment();

  6. Запуск проекта на Tomcat;

  7. Демонстрация работы ajax;

  8. Загрузка всех изменений текущего урока на github.

Проработка UI для создания нового комментария
13:20
  1. Создание SocialAccount;

  2. Создание SocialService;

  3. Реализация GooglePlusSocialService;

  4. Создание AvatarService;

  5. Библиотека thumbnailator 0.4.8;

  6. Реализация FileStorageAvatarService;

  7. Загрузка всех изменений текущего урока на github.

Создание социальных сервисов на сервере
18:04
  1. Создание метода createForm, используя библиотеку commons-beanutils;

  2. Методы в SQLDAO для создания нового комментария;

  3. Реализация логики создания нового комментария;

  4. Запуск проекта на Tomcat;

  5. Проверка алгоритма создания нового комментария;

  6. Пошаговая демонстрация работы метода createComment;

  7. Загрузка всех изменений текущего урока на github.

Preview 18:21
  1. Создание i18n/messages;

  2. Заполнение данными;

  3. Создание i18nService;

  4. Создание AbstractForm и метода для валидации;

  5. Переопределение метода валидации для CommentForm;

  6. Валидация для createComment;

  7. Необходимость валидации на стороне сервера при наличии валидации на стороне клиента;

  8. Запуск проекта на Tomcat;

  9. Загрузка всех изменений текущего урока на github.

Логика интернационализации и валидации форм
13:55
  1. Создание NotificationService;

  2. Реализация AsyncEmailNotificationService с использованием commons-email 1.4;

  3. Новые свойства в application.properties;

  4. ExecutorService для асинхронной отправки;

  5. Добавление уведомления после создания нового комментария;

  6. Запуск проекта на Tomcat;

  7. Загрузка всех изменений текущего урока на github.

Реализация сервиса уведомлений
15:15
  1. Класс формы обратной связи: ContactForm

  2. Обработка запроса пользователя;

  3. Изменение ContactController;

  4. Добавление поддержки success уведомления на contact.jsp;

  5. Запуск проекта на Tomcat;

  6. Загрузка всех изменений текущего урока на github.

Обработка формы обратной связи
11:11
  1. Тег message.tag;

  2. Демонстрация интернационализации JSP файлов на примере использование тега на error.jsp;

  3. Файл динамических js сообщений - messages.jsp;

  4. Использование сервиса addthis.com для интеграции с социальными сервисами;

  5. Запуск проекта на Tomcat;

  6. Загрузка всех изменений текущего урока на github.

Интернационализация JSP/JS и социальные сервисы
11:49
+ Подготовка к внедрению
3 lectures 01:00:19
  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

Рефакторинг и FAQ по архитектуре проекта
23:28
  1. Сравнение реализации бизнес метода createComment и диаграммы, на базе которой проектировалось приложение;

  2. Возможности компонентного подхода при изменении логики работы приложения;

  3. Создание DemoNotificationService

  4. Создание DemoBusinessService

  5. Демонстрация работы изменений;

  6. Загрузка всех изменений текущего урока на github.

Обзор архитектуры и подготовка к загрузке на хостинг
17:37
  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

Загрузка проекта на хостинг OpenShift
19:14
Requirements
  • Курс ориентирован на Java разработчиков, которые освоили Java Core и познакомились с Java Servlets & JSP API
Description

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

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

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

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

Who this course is for:
  • Java разработчикам, желающим закрепить свои знания по Java Servlets & JSP API