В идеале, вы не должны передавать объект request ни одному слою за пределами контроллера.Пусть объект запроса находится в самом контроллере и использует объекты POJO или DTO для перемещения ваших данных по слоям из контроллера.Ваш код может работать, но это не «способ» сделать это.Вы поймете и оцените, почему шаблоны важны, когда ваше приложение становится больше.Это облегчает жизнь и позволяет избежать всего беспорядка.И делает отладку и обслуживание намного проще.
Относительно RequestDispatcher
RequestDispatcher используется для пересылки запроса наJSP для отображения данных, где вам может потребоваться request parameters
, а также request attributes
( пример : список сотрудников, извлеченных из БД).Вы фактически пересылаете объект запроса в JSP.В этом случае ваш объект запроса все еще перемещается на уровне представления вашего приложения.Фактически ваш JSP будет преобразован в сервлет (контроллер) контейнером позже.Это совершенно нормально, и это две строки, которые идут вместе:
RequestDispatcher rd = request.getRequestDispatcher("/jspToDisplayAsResponse.jsp");
rd.forward(request, response);
Вы не должны передавать объекты запроса другим слоям, таким как Service layer, DAO layerи т. д., за исключением уровня представления, который включает в себя ваши JSP и контроллеры.