Где осуществлять валидацию пользовательского ввода в архитектуре MVC? Всем привет. Пишу настольную программу на Java c гуи на JavaFX. Решил изучить шаблоны ООП и, в частности, подход MVC. Данные сохраняются в файловую реляционную бд. Валидация данных в плане соответствия реляционной модели - понятно, в классе модели. А где нужно, "по уму", закладывать проверки, что в числовое поле введено число? Где фильтруются sql-инъекции, HTML-разметку и прочие грязные хаки?
В гугле куча примеров ASP.NET MVC или веб-приложения, на пхп, например. Там тоже все мне не очень ясно. В случае, если у нас статическая HTML страница, то все контроллеры и модели - на стороне сервера, а что в случае, если у нас на фронтенде много JS кода с логикой? Как распределена ответственность между частями системы в рамках архитектуры MVC в случае с толстым клиентом?

21 Авг 2019 в 07:03
220 +1
0
Ответы
1

В архитектуре MVC, валидация пользовательского ввода обычно осуществляется в контроллере. Контроллер отвечает за обработку пользовательских запросов и управление потоком данных между моделью и представлением. Поэтому проверка валидности данных, контроля за вводом данных пользователя и фильтрацию вредоносных данных следует размещать в контроллере.

Если у вас есть много JS кода с логикой на клиентской стороне (толстый клиент), то валидация данных и фильтрация вредоносных данных все равно должны быть также иметь место на сервере. Это важно для обеспечения безопасности и целостности данных, так как клиентская сторона может быть подвергнута атакам.

В целом, ответственность в архитектуре MVC распределена следующим образом: модель отвечает за хранение данных и логику бизнес-логики, контроллер управляет потоком данных и обработкой запросов, а представление отображает данные пользователю и связывается с контроллером для получения необходимых данных.

В случае с толстым клиентом, часть логики может быть перенесена на клиентскую сторону, но валидация данных и обеспечение безопасности все равно должны быть реализованы и на сервере. В идеальной ситуации, логика валидации должна быть повторно использована и на клиентской и на серверной стороне, чтобы обеспечить одинаковую проверку данных.

20 Апр в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 683 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир