SlideShare a Scribd company logo
Web-технологии и
web-дизайн
Сервлеты и JSP
Что такое Servlet?
• Сервлет является классом Java, который используется
для расширения возможностей серверов, предназначенных
для размещения приложений. Сервлеты могут отвечать на
запросы и генерировать отклики.
• Базовым классом для всех сервлетов является
javax.servlet.GenericServlet. Этот класс определяет
обобщенный, независимый от протокола сервлет.
• Наиболее распространенный тип сервлета – HTTP-
сервлет. Этот тип сервлета используется в обработке
HTTP-запросов и генерировании HTTP-откликов. HTTP-
сервлет представляет собой класс, который расширяет
класс javax.servlet.http.HttpServlet, являющийся подклассом
базового класса javax.servlet.GenericServlet.
Контейнер сервлетов
Servlet Container
• Контейнер сервлетов – это часть Web сервера.
• Контейнер сервлетов обеспечивает сетевые сервисы,
посредством которых отправляются запросы (requests) и
ответы (responses), декодирует запросы основанные на
MIME, и форматирует основанные на MIME ответы.
• Контейнер сервлетов также управляет сервлетами на
протяжении их жизненного цикла.
Контейнер сервлетов
Web Container
HTTP запросы
• Сервлет должен реализовывать один или более методов для ответов на
определенные HTTP-запросы.
• Эти переопределяемые методы определены в родительском классе
HttpServlet.
• Эти методы названы таким образом, чтобы можно было интуитивно
понять, какой метод использовать в том или ином случае:
HTTP-запрос Метод HTTP-сервлета
GET doGet(HttpServletRequest request, HttpServletResponse response)
POST doPost(HttpServletRequest request, HttpServletResponse response)
PUT doPut(HttpServletRequest request, HttpServletResponse response)
DELETE doDelete(HttpServletRequest request, HttpServletResponse response)
Разработчики приложений никогда не вызывают эти методы напрямую.
Их автоматически вызывает сервер приложений всякий раз, когда получает
соответствующий HTTP-запрос.
HTTP запросы
• HTTP-запрос GET генерируется всякий раз, когда пользователь вводит
URL сервлета в адресной строке обозревателя, либо щелкает по
ссылке, указывающей на URL сервлета, либо отправляет HTML-форму с
использованием метода GET, в которой атрибут action указывает на URL
сервлета.
• В любом из этих случаев код сервлета внутри метода doGet()
запускается на выполнение.
• HTTP-запрос POST обычно генерируется, когда пользователь
отправляет HTML-форму с использованием метода POST и ее атрибут
action указывает на URL сервлета. В этом случае код сервлета внутри
метода doPost()запускается на выполнение.
Простой сервлет
public class SimpleServlet extends HttpServlet {
protected void doGet(HttpServletRequest request,
HttpServletResponse response) {
try {
response.setContentType(”text/html”);
PrintWriter printWriter = response.getWriter();
printWriter.println(”<h2>”);
printWriter.println(
”Если вы читаете это, ваш сервер приложений работает нормально!”);
printWriter.println(”<h2>”);
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
Простой сервлет
<?xml version=”1.0” encoding=”UTF8”?>
<webapp xmlns=”http://java.sun.com/xml/ns/javaee”
xmlns:xsi=”http://www.w3.org/2001/XMLSchemainstance”
xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/webapp_3_0.xsd” version=”3.0”>
<servlet>
<servletname>SimpleServlet</servletname>
<servletclass>server.SimpleServlet</servletclass>
</servlet>
<servletmapping>
<servletname>SimpleServlet</servletname>
<urlpattern>/simple</urlpattern>
</servletmapping>
</webapp>
Дескриптор развертывания – web.xml (v 3.0)
Простой сервлет
Сервлет 3.0 делает дескриптор развертывания приложения, файл web.xml,
необязательным.
Сервлеты могут быть сконфигурированы с помощью аннотаций вместо
использования XML.
Если веб-приложение конфигурируется и с помощью аннотаций и с помощью дескриптора
развертывания web.xml, то настройки, указанные в файле web.xml, имеют приоритет.
@WebServlet(name=”simpleservlet”, urlPatterns = {”/simple”})
Простая JSP
• JSP – это страница, содержащая и статическую HTML-разметку, и
динамический контент.
• Динамический контент может быть сгенерирован путем
использования фрагментов кода Java, называемых
скриптлетами(scriptlets), или путем использования стандартных или
пользовательских JSP-тегов.
<%@ page language=”java” contentType=”text/html; charset=UTF-8”
pageEncoding=”UTF-8” %>
<%@ page import=”java.util.Date” %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8”>
<title>Дата и время сервера</title>
</head>
<body>
<h1>Дата и время сервера: <% out.print(new Date()); %></h1>
</body>
</html>
Жизненный цикл JSP
1. Translation
2. Compilation
3. Class Loading
4. Instantiation
5. Initialization
6. Request Processing
7. Destroy
Жизненный цикл JSP
1. Translation – JSP контейнер проверяет код
JSP страницы, парсит ее для создания кода
сервлета.
2. Compilation – JSP контейнер компилирует
исходный код jsp класса и создает класс на этой
фазе.
3. Class Loading – контейнер загружает классы
в память на этой фазе.
4. Instantiation – внедрение конструкторов без
параметров созданных классов для
инициализации в памяти классов.
Жизненный цикл JSP
5. Initialization – в контейнере вызывается init
метод объекта JSP класса и инициализируется
конфигурация сервлета с init параметрами,
которые указаны в дескрипторе развертывания
(web.xml). После этой фазы JSP способен
обрабатывать запросы клиентов.
Обычно фазы 1-5 происходят после первого
запроса клиента (т.е. ленивая загрузка), но
можно настроить загрузку и инициализацию JSP
на старте приложения по аналогии с
сервлетами.
Жизненный цикл JSP
6. Request Processing – длительный этап
жизненного цикла - обработка запросов клиента
JSP страницей.
Обработка является многопоточной и
аналогична сервлетам — для каждого запроса
создается новый поток, создаются
объекты ServletRequest и ServletResponse и
происходит внедрение сервис методов JSP.
7. Destroy – последняя фаза жизненного цикла
JSP на которой JSP класс удаляется из памяти.
Обычно это происходит при выключении
сервера или андеплое приложения.
Взаимодействие сервлета и JSP
в рамках шаблона MVC
Реализация MVC при помощи
RequestDispatcher
1. Разработать JavaBeans-объекты, которые будут
представлять данные
2. Использовать сервлет для обработки запросов
– Сервлет считывает параметры запроса, проверяет
входные данные и т.д.
3. Поместить данные в JavaBeans-объекты
– Сервлет тем или иным способом вызывает код бизнес-
логики приложения. Результаты помещаются в
JavaBeans-объекты
4. Сохранить JavaBean в объекте request, session, или
servletContext
– Сервлет вызывает метод setAttribute объекта request,
session, или servletContext, чтобы сохранить ссылку на
бин
Реализация MVC при помощи
RequestDispatcher
5. Перенаправить (forward) запрос к JSP-странице
– Сервлет определяет, какая JSP –страница нужна в
данной ситуации и использует метод forward() объекта
RequestDispatcher для передачи управления этой
странице.
6. Извлечь данные из JavaBeans.
– JSP страница извлекает данные из бинов при помощи
директивы jsp:useBean с соответствующим параметром
scope. Затем страница использует jsp:getProperty или
выражения Expression Language, чтобы вывести
свойства бина
– JSP не создает и не изменяет бин; она просто
извлекает и отображает данные, созданные сервлетом
Сервлеты + JSP
Вопросы?
Web-технологии и
web-дизайн
Сервлеты и JSP

More Related Content

Similar to servlets1.pdf

Java весна 2014 лекция 2
Java весна 2014 лекция 2Java весна 2014 лекция 2
Java весна 2014 лекция 2Technopark
 
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet APIПротокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Ekaterina Kuchinskaya
 
Java осень 2013 лекция 1-2
Java осень 2013 лекция 1-2Java осень 2013 лекция 1-2
Java осень 2013 лекция 1-2Technopark
 
Web Interface
Web InterfaceWeb Interface
Web Interfacescassau
 
JDBC
JDBCJDBC
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложенияСтажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения7bits
 
The Old New ASP.NET
The Old New ASP.NETThe Old New ASP.NET
The Old New ASP.NET
Vitaly Baum
 
Service workers
Service workersService workers
Ilia kantor паттерны серверных comet решений
Ilia kantor паттерны серверных comet решенийIlia kantor паттерны серверных comet решений
Ilia kantor паттерны серверных comet решенийrit2010
 
JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.
Igor Shkulipa
 
Основы Java. 4. Web
Основы Java. 4. WebОсновы Java. 4. Web
Основы Java. 4. Web
Sergey Nemchinsky
 
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
Noveo
 
Средства разработки web приложений (Web frameworks)
Средства разработки web приложений
(Web frameworks)Средства разработки web приложений
(Web frameworks)
Средства разработки web приложений (Web frameworks)
Fedor Malyshkin
 
JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.
Igor Shkulipa
 
C# Web. Занятие 01.
C# Web. Занятие 01.C# Web. Занятие 01.
C# Web. Занятие 01.
Igor Shkulipa
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
GetDev.NET
 
Selenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностейSelenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностейPaul Stashevsky
 
Spring Boot Ripper
Spring Boot RipperSpring Boot Ripper
Spring Boot Ripper
Кирилл Толкачёв
 
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXB
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXBТехнология создания веб-сервисов на базе стандарта JAX-WS & JAXB
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXB
Fedor Malyshkin
 

Similar to servlets1.pdf (20)

Java весна 2014 лекция 2
Java весна 2014 лекция 2Java весна 2014 лекция 2
Java весна 2014 лекция 2
 
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet APIПротокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
Протокол HTTP. Клиент-серверная модель взаимодействия. Servlet API
 
Java осень 2013 лекция 1-2
Java осень 2013 лекция 1-2Java осень 2013 лекция 1-2
Java осень 2013 лекция 1-2
 
Web Interface
Web InterfaceWeb Interface
Web Interface
 
JDBC
JDBCJDBC
JDBC
 
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложенияСтажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
 
The Old New ASP.NET
The Old New ASP.NETThe Old New ASP.NET
The Old New ASP.NET
 
Service workers
Service workersService workers
Service workers
 
The Best Portlet
The Best PortletThe Best Portlet
The Best Portlet
 
Ilia kantor паттерны серверных comet решений
Ilia kantor паттерны серверных comet решенийIlia kantor паттерны серверных comet решений
Ilia kantor паттерны серверных comet решений
 
JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.
 
Основы Java. 4. Web
Основы Java. 4. WebОсновы Java. 4. Web
Основы Java. 4. Web
 
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
 
Средства разработки web приложений (Web frameworks)
Средства разработки web приложений
(Web frameworks)Средства разработки web приложений
(Web frameworks)
Средства разработки web приложений (Web frameworks)
 
JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.
 
C# Web. Занятие 01.
C# Web. Занятие 01.C# Web. Занятие 01.
C# Web. Занятие 01.
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Selenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностейSelenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностей
 
Spring Boot Ripper
Spring Boot RipperSpring Boot Ripper
Spring Boot Ripper
 
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXB
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXBТехнология создания веб-сервисов на базе стандарта JAX-WS & JAXB
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXB
 

More from ssuser0562f1

Алгоритмизация и программирование С/С++
Алгоритмизация и  программирование С/С++Алгоритмизация и  программирование С/С++
Алгоритмизация и программирование С/С++
ssuser0562f1
 
Algorithms and programming lecture in ru
Algorithms and programming lecture in ruAlgorithms and programming lecture in ru
Algorithms and programming lecture in ru
ssuser0562f1
 
Geometry algorithms and formulas calculation
Geometry algorithms and formulas calculationGeometry algorithms and formulas calculation
Geometry algorithms and formulas calculation
ssuser0562f1
 
Algorithms in number theory presentation
Algorithms in number theory presentationAlgorithms in number theory presentation
Algorithms in number theory presentation
ssuser0562f1
 
jpa_nus.pdf
jpa_nus.pdfjpa_nus.pdf
jpa_nus.pdf
ssuser0562f1
 
0808.pdf
0808.pdf0808.pdf
0808.pdf
ssuser0562f1
 
Курсовая (1).pdf
Курсовая (1).pdfКурсовая (1).pdf
Курсовая (1).pdf
ssuser0562f1
 
springdatajpatwjug-120527215242-phpapp02.pdf
springdatajpatwjug-120527215242-phpapp02.pdfspringdatajpatwjug-120527215242-phpapp02.pdf
springdatajpatwjug-120527215242-phpapp02.pdf
ssuser0562f1
 
springdatajpa-up.pdf
springdatajpa-up.pdfspringdatajpa-up.pdf
springdatajpa-up.pdf
ssuser0562f1
 
waits.pdf
waits.pdfwaits.pdf
waits.pdf
ssuser0562f1
 
waits.pdf
waits.pdfwaits.pdf
waits.pdf
ssuser0562f1
 
geometry.pdf
geometry.pdfgeometry.pdf
geometry.pdf
ssuser0562f1
 

More from ssuser0562f1 (12)

Алгоритмизация и программирование С/С++
Алгоритмизация и  программирование С/С++Алгоритмизация и  программирование С/С++
Алгоритмизация и программирование С/С++
 
Algorithms and programming lecture in ru
Algorithms and programming lecture in ruAlgorithms and programming lecture in ru
Algorithms and programming lecture in ru
 
Geometry algorithms and formulas calculation
Geometry algorithms and formulas calculationGeometry algorithms and formulas calculation
Geometry algorithms and formulas calculation
 
Algorithms in number theory presentation
Algorithms in number theory presentationAlgorithms in number theory presentation
Algorithms in number theory presentation
 
jpa_nus.pdf
jpa_nus.pdfjpa_nus.pdf
jpa_nus.pdf
 
0808.pdf
0808.pdf0808.pdf
0808.pdf
 
Курсовая (1).pdf
Курсовая (1).pdfКурсовая (1).pdf
Курсовая (1).pdf
 
springdatajpatwjug-120527215242-phpapp02.pdf
springdatajpatwjug-120527215242-phpapp02.pdfspringdatajpatwjug-120527215242-phpapp02.pdf
springdatajpatwjug-120527215242-phpapp02.pdf
 
springdatajpa-up.pdf
springdatajpa-up.pdfspringdatajpa-up.pdf
springdatajpa-up.pdf
 
waits.pdf
waits.pdfwaits.pdf
waits.pdf
 
waits.pdf
waits.pdfwaits.pdf
waits.pdf
 
geometry.pdf
geometry.pdfgeometry.pdf
geometry.pdf
 

servlets1.pdf

  • 2. Что такое Servlet? • Сервлет является классом Java, который используется для расширения возможностей серверов, предназначенных для размещения приложений. Сервлеты могут отвечать на запросы и генерировать отклики. • Базовым классом для всех сервлетов является javax.servlet.GenericServlet. Этот класс определяет обобщенный, независимый от протокола сервлет. • Наиболее распространенный тип сервлета – HTTP- сервлет. Этот тип сервлета используется в обработке HTTP-запросов и генерировании HTTP-откликов. HTTP- сервлет представляет собой класс, который расширяет класс javax.servlet.http.HttpServlet, являющийся подклассом базового класса javax.servlet.GenericServlet.
  • 3. Контейнер сервлетов Servlet Container • Контейнер сервлетов – это часть Web сервера. • Контейнер сервлетов обеспечивает сетевые сервисы, посредством которых отправляются запросы (requests) и ответы (responses), декодирует запросы основанные на MIME, и форматирует основанные на MIME ответы. • Контейнер сервлетов также управляет сервлетами на протяжении их жизненного цикла.
  • 5. HTTP запросы • Сервлет должен реализовывать один или более методов для ответов на определенные HTTP-запросы. • Эти переопределяемые методы определены в родительском классе HttpServlet. • Эти методы названы таким образом, чтобы можно было интуитивно понять, какой метод использовать в том или ином случае: HTTP-запрос Метод HTTP-сервлета GET doGet(HttpServletRequest request, HttpServletResponse response) POST doPost(HttpServletRequest request, HttpServletResponse response) PUT doPut(HttpServletRequest request, HttpServletResponse response) DELETE doDelete(HttpServletRequest request, HttpServletResponse response) Разработчики приложений никогда не вызывают эти методы напрямую. Их автоматически вызывает сервер приложений всякий раз, когда получает соответствующий HTTP-запрос.
  • 6. HTTP запросы • HTTP-запрос GET генерируется всякий раз, когда пользователь вводит URL сервлета в адресной строке обозревателя, либо щелкает по ссылке, указывающей на URL сервлета, либо отправляет HTML-форму с использованием метода GET, в которой атрибут action указывает на URL сервлета. • В любом из этих случаев код сервлета внутри метода doGet() запускается на выполнение. • HTTP-запрос POST обычно генерируется, когда пользователь отправляет HTML-форму с использованием метода POST и ее атрибут action указывает на URL сервлета. В этом случае код сервлета внутри метода doPost()запускается на выполнение.
  • 7. Простой сервлет public class SimpleServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) { try { response.setContentType(”text/html”); PrintWriter printWriter = response.getWriter(); printWriter.println(”<h2>”); printWriter.println( ”Если вы читаете это, ваш сервер приложений работает нормально!”); printWriter.println(”<h2>”); } catch (IOException ex) { ex.printStackTrace(); } } }
  • 8. Простой сервлет <?xml version=”1.0” encoding=”UTF8”?> <webapp xmlns=”http://java.sun.com/xml/ns/javaee” xmlns:xsi=”http://www.w3.org/2001/XMLSchemainstance” xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/webapp_3_0.xsd” version=”3.0”> <servlet> <servletname>SimpleServlet</servletname> <servletclass>server.SimpleServlet</servletclass> </servlet> <servletmapping> <servletname>SimpleServlet</servletname> <urlpattern>/simple</urlpattern> </servletmapping> </webapp> Дескриптор развертывания – web.xml (v 3.0)
  • 9. Простой сервлет Сервлет 3.0 делает дескриптор развертывания приложения, файл web.xml, необязательным. Сервлеты могут быть сконфигурированы с помощью аннотаций вместо использования XML. Если веб-приложение конфигурируется и с помощью аннотаций и с помощью дескриптора развертывания web.xml, то настройки, указанные в файле web.xml, имеют приоритет. @WebServlet(name=”simpleservlet”, urlPatterns = {”/simple”})
  • 10. Простая JSP • JSP – это страница, содержащая и статическую HTML-разметку, и динамический контент. • Динамический контент может быть сгенерирован путем использования фрагментов кода Java, называемых скриптлетами(scriptlets), или путем использования стандартных или пользовательских JSP-тегов. <%@ page language=”java” contentType=”text/html; charset=UTF-8” pageEncoding=”UTF-8” %> <%@ page import=”java.util.Date” %> <!DOCTYPE html> <html> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8”> <title>Дата и время сервера</title> </head> <body> <h1>Дата и время сервера: <% out.print(new Date()); %></h1> </body> </html>
  • 11. Жизненный цикл JSP 1. Translation 2. Compilation 3. Class Loading 4. Instantiation 5. Initialization 6. Request Processing 7. Destroy
  • 12. Жизненный цикл JSP 1. Translation – JSP контейнер проверяет код JSP страницы, парсит ее для создания кода сервлета. 2. Compilation – JSP контейнер компилирует исходный код jsp класса и создает класс на этой фазе. 3. Class Loading – контейнер загружает классы в память на этой фазе. 4. Instantiation – внедрение конструкторов без параметров созданных классов для инициализации в памяти классов.
  • 13. Жизненный цикл JSP 5. Initialization – в контейнере вызывается init метод объекта JSP класса и инициализируется конфигурация сервлета с init параметрами, которые указаны в дескрипторе развертывания (web.xml). После этой фазы JSP способен обрабатывать запросы клиентов. Обычно фазы 1-5 происходят после первого запроса клиента (т.е. ленивая загрузка), но можно настроить загрузку и инициализацию JSP на старте приложения по аналогии с сервлетами.
  • 14. Жизненный цикл JSP 6. Request Processing – длительный этап жизненного цикла - обработка запросов клиента JSP страницей. Обработка является многопоточной и аналогична сервлетам — для каждого запроса создается новый поток, создаются объекты ServletRequest и ServletResponse и происходит внедрение сервис методов JSP. 7. Destroy – последняя фаза жизненного цикла JSP на которой JSP класс удаляется из памяти. Обычно это происходит при выключении сервера или андеплое приложения.
  • 15. Взаимодействие сервлета и JSP в рамках шаблона MVC
  • 16. Реализация MVC при помощи RequestDispatcher 1. Разработать JavaBeans-объекты, которые будут представлять данные 2. Использовать сервлет для обработки запросов – Сервлет считывает параметры запроса, проверяет входные данные и т.д. 3. Поместить данные в JavaBeans-объекты – Сервлет тем или иным способом вызывает код бизнес- логики приложения. Результаты помещаются в JavaBeans-объекты 4. Сохранить JavaBean в объекте request, session, или servletContext – Сервлет вызывает метод setAttribute объекта request, session, или servletContext, чтобы сохранить ссылку на бин
  • 17. Реализация MVC при помощи RequestDispatcher 5. Перенаправить (forward) запрос к JSP-странице – Сервлет определяет, какая JSP –страница нужна в данной ситуации и использует метод forward() объекта RequestDispatcher для передачи управления этой странице. 6. Извлечь данные из JavaBeans. – JSP страница извлекает данные из бинов при помощи директивы jsp:useBean с соответствующим параметром scope. Затем страница использует jsp:getProperty или выражения Expression Language, чтобы вывести свойства бина – JSP не создает и не изменяет бин; она просто извлекает и отображает данные, созданные сервлетом