Топ-100Шаблон Front Controller: централизованная обработка запросов - CodOrbits
LogoCodOrbits

Раздел: Шаблоны проектирования

Раздел о популярных паттернах проектирования в Java: Singleton, Factory, MVC и других архитектурных решениях.

Все разделы
Иконка Шаблоны проектирования

Шаблон Front Controller: централизованная обработка запросов

Last updated: 10 мая 2025 г.

Вся суть паттерна Front Controller в том, что все запросы обрабатываются централизовано через одно место.

То есть любой запрос сначала идет в Front Controller, далее Front Controller определяет в какой другой обработчик или View перенаправить запрос и, собственно, перенаправляет.

Приведем пример сервлета, который будет играть роль Front Controller-а, который принимает запросы и форвардит через RequestDispatcher на какую-то вьюху.

1import java.util.*;
2import java.io.IOException;
3import java.io.PrintWriter;
4
5import javax.servlet.*;
6import javax.servlet.http.*;
7import javax.servlet.annotation.*;;
8
9@WebServlet("/FrontControllerServlet")
10public class FrontControllerServlet extends HttpServlet {
11    protected void doPost(HttpServletRequest req,
12                          HttpServletResponse resp)
13            throws ServletException, IOException {
14        //Пусть Front Controller проверяет присланные
15        //POST запросом в него параметры и если они
16        //соответствуют тому что в equals то Front Controller
17        //перенаправляет отправившего запрос
18        //на страницу SomePasswordValue, также и сам запрос(req)
19        //туда перенаправляться с помощью forward.
20        if (req.getParameter("password").equals("JohnSmith") &&
21            req.getParameter("login").equals("SomePasswordValue")) {
22            RequestDispatcher rd=
23                req.getRequestDispatcher("/welcomePage.jsp");
24            rd.forward(req, resp);
25        }
26        //в ином случае на страницу errorPage
27        else {
28            RequestDispatcher rd=
29                req.getRequestDispatcher("/errorPage.jsp");
30            rd.forward(req, resp);
31        }
32    }
33}

Следующие уроки

Шаблон Template: поведение по умолчанию

14
мин.

Similar Articles Icon
Divider

Что такое Spring Framework и зачем он нужен

20
мин.

Similar Articles Icon
Divider

Внедрение зависимостей с помощью сеттера.

17
мин.

Similar Articles Icon