JSP_Какое лучше?пересылка объекта запроса или пересылка Java Bean? - PullRequest
0 голосов
/ 01 июня 2018

Я относительно новичок в Java и JSP.В настоящее время работаю над процессом аутентификации с использованием JSP и сервлета.

Допустим, я кодирую процесс входа в систему.

С моей точки зрения, я вижу два способа сделать это.

1) Контроллер пересылает объект запроса от клиента в DAO или класс Model

2) Контроллер получает запрос и помещает данные (например, ID, PWD) в виде Java-бина и передает их в класс DAO или Model.

Я сделал эти две вещи, и обе работают нормально функционально.

Так что я не знаю, как лучше кодировать.

И это заставляет меня задуматься о другой вещи.

Есть ли какой-то недостаток, если я просто перенаправлю запрос от клиента не только на процесс входа в систему, но и на весь процесс в целом?

1 Ответ

0 голосов
/ 01 июня 2018

В идеале, вы не должны передавать объект 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 и контроллеры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...