├── .gitignore ├── README.md ├── pom.xml └── src └── main ├── java └── ru │ └── javavision │ └── servlet │ └── GetIndexPageServlet.java └── webapp └── WEB-INF ├── view └── index.jsp └── web.xml /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | *.class 3 | *.DS_Store 4 | .idea 5 | targetText 6 | com 7 | target 8 | */target 9 | */*/target 10 | out 11 | apache-tomcat-8.5.15 12 | 13 | # Mobile Tools for Java (J2ME) 14 | .mtj.tmp/ 15 | 16 | # Package Files # 17 | *.jar 18 | *.war 19 | *.ear 20 | 21 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 22 | hs_err_pid* 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Раздел Servlet (Сервлеты) 2 | ============================= 3 | 4 | ####Плейлист на YouTube: 5 | 6 | Чтобы склонировать репозиторий через `https`, в папке с будущим проектом, введите в консоль: 7 | 8 | $ git clone https://github.com/triodjangopiter/servlet-tutorial.git 9 | 10 | 11 | Краткая информация об уроках 12 | ------------ 13 | 14 | 15 | Урок №1. Конфигурирование нового проекта и настройка `apache-tomcat 8.5.15`. 16 | ------------ 17 | 18 | Ветка: `lesson/01.get_started` 19 | 20 | В данном видео рассматриваются основные идеи сервлетов, а так же подробным 21 | образом продемонстрирован процесс конфигурирования нового web проекта, от 22 | подключения всех необходимых зависимостей, до запуска приложения. Разберем 23 | роль дескриптора развертывания web.xml, в приложениях использующих сервлеты. 24 | 25 | Видео: 26 | 27 | 28 | Урок №2. Жизненный цикл сервлета. 29 | ------------ 30 | 31 | Ветка: `lesson/02.lifecycle` 32 | 33 | В этом занятии мы рассмотрим жизненный цикл сервлета от момента инициализации 34 | до разрушения. А так-же поговорим о некоторых мерах предосторожности, связанных 35 | с многопоточной средой, в которой работают сервлеты. 36 | 37 | Видео: 38 | 39 | 40 | Урок №3. Практика. Создаем CRUD приложение. Часть 1. 41 | ------------ 42 | 43 | Ветка: `lesson/03.http_methods` 44 | 45 | На этом занятии мы начнем писать простое CRUD приложение. И реализуем две 46 | основные функции: создание и чтение. Разберем принципы работы основных http 47 | методов get и post. 48 | 49 | Видео: 50 | 51 | 52 | Урок №4. Практика. Создаем CRUD приложение. Часть 2. 53 | ------------ 54 | 55 | Ветка: `lesson/04.crud_app` 56 | 57 | На этом занятии мы завершим наше CRUD приложение добавив ему операции 58 | редактирования и удаления данных, используя протокол http. И рассмотрим 59 | какие существуют области видимомости в web приложении. 60 | 61 | Видео: 62 | 63 | 64 | Урок №5. Передача json при помощи сервлетов. 65 | ------------ 66 | 67 | Ветка: `lesson/05.json_handle` 68 | 69 | Речь пойдет о том как использовать сервлеты для передачи данных в формате json. 70 | 71 | Видео: 72 | 73 | 74 | Урок №6. Использование servlet-filter. 75 | ------------ 76 | 77 | Ветка: `lesson/06.filter_base` 78 | 79 | В данном видео речь пойдет о сервлет-фильтрах. Мы пройдем их создание 80 | настройка и использование. А так-же поговорим о их жизненном цикле. 81 | 82 | Видео: 83 | 84 | 85 | Урок №7. HttpSession. 86 | ------------ 87 | 88 | Ветка: `lesson/07.session` 89 | 90 | Мы разберем понятие сенса и то, как он реализован в Java при помощи HttpSession. 91 | Обсудим разницу между авторизацией и аутентификацией. Познакомимся с основными 92 | методами представленными в этом классе, и с тем где их удобно использовать 93 | и почему. 94 | 95 | Видео: 96 | 97 | 98 | Урок №8. Пишем свою авторизацию и аутентификацию. 99 | ------------ 100 | 101 | Ветка: `lesson/08.auth` 102 | 103 | Мы напишем свой собственный механизм авторизации и аутентификации при помощи 104 | сервлет фильтров. 105 | 106 | Видео: 107 | 108 | 109 | Урок №9. JSP и JSTL. 110 | ------------ 111 | 112 | Ветка: `lesson/09.jstl` 113 | 114 | Рассмотрим самые часто используемые теги при работе с библиотекой jstl и 115 | ее дополнением taglibs. 116 | 117 | Видео: 118 | 119 | 120 | Урок №10. Тестирование сервлетов при помощи фраемворка Mockito. 121 | ------------ 122 | 123 | Ветка: `lesson/10.servlet_test` 124 | 125 | Изучим библиотеку mockito и протестируем сервлет при помощи нее. Подробно 126 | рассмотрим все основные тонкости по работе с ней. 127 | 128 | Видео: -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | ru.javavision 8 | servlet-tutorial 9 | 1.0-SNAPSHOT 10 | war 11 | 12 | 13 | 14 | 15 | org.apache.maven.plugins 16 | maven-compiler-plugin 17 | 3.2 18 | 19 | 1.8 20 | 1.8 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | junit 31 | junit 32 | 4.12 33 | test 34 | 35 | 36 | 37 | 38 | org.mockito 39 | mockito-all 40 | 1.9.5 41 | test 42 | 43 | 44 | 45 | 46 | javax.servlet 47 | javax.servlet-api 48 | 3.1.0 49 | provided 50 | 51 | 52 | 53 | 54 | jstl 55 | jstl 56 | 1.2 57 | 58 | 59 | 60 | 61 | taglibs 62 | standard 63 | 1.1.2 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /src/main/java/ru/javavision/servlet/GetIndexPageServlet.java: -------------------------------------------------------------------------------- 1 | package ru.javavision.servlet; 2 | 3 | import javax.servlet.ServletException; 4 | import javax.servlet.http.HttpServlet; 5 | import javax.servlet.http.HttpServletRequest; 6 | import javax.servlet.http.HttpServletResponse; 7 | import java.io.IOException; 8 | 9 | public class GetIndexPageServlet extends HttpServlet { 10 | 11 | private static String index = "/WEB-INF/view/index.jsp"; 12 | 13 | protected void doGet(HttpServletRequest req, HttpServletResponse resp) 14 | throws ServletException, IOException { 15 | 16 | req.getRequestDispatcher(index).forward(req, resp); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/view/index.jsp: -------------------------------------------------------------------------------- 1 | <%-- 2 | Author: Pavel Ravvich. 3 | Date: 14.10.17. 4 | --%> 5 | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 6 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 7 | 8 | 9 | Title 10 | 11 | 12 | 13 | 14 | Hello from Java Vision! 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | GetStartPageServlet 9 | ru.javavision.servlet.GetIndexPageServlet 10 | 11 | 12 | 13 | GetStartPageServlet 14 | / 15 | 16 | --------------------------------------------------------------------------------