Проверка JSP и HTML-форм, на стороне сервера или на стороне клиента, или и то, и другое? - PullRequest
2 голосов
/ 29 мая 2010

Мне известно, что я могу использовать Google "Проверка форм HTML" и получу миллиард учебных пособий. Мне хорошо известно, что я могу использовать простой JavaScript для проверки ввода формы, но мне сказали, что это не обязательно эффективный метод. Я также слышал, что рекомендуется проверять как клиентский, так и серверный код. ХОРОШО! Ну, что именно это означает, кроме написания кода на обоих? Означает ли это, что я делаю некоторые с JavaScript, а другие с сервлетами, или это означает, что я пишу одинаковые методы проверки на обоих?

Мой настоящий вопрос: может ли кто-нибудь дать мне понимание и указания относительно того, как проводить проверку моих HTML-форм. Я использую JSP и Servlet, и у меня есть тонны проверки формы.

Я уже провел небольшую проверку формы с помощью регулярного выражения в Java, но хочу выяснить, направляюсь ли я в правильном направлении, прежде чем писать какой-либо код.

Только продуктивные ответы, пожалуйста. Если бы я хотел получить отрицательный отзыв о том, насколько я неопытен, я бы пошел в Reddit.

Спасибо!

Ответы [ 2 ]

6 голосов
/ 29 мая 2010
  • Проверка на стороне сервера необходима, потому что вы не можете полагаться на проверку на стороне клиента. Пользователи могут отключить, обойти или изменить его.
  • Проверка на стороне клиента удобна, поскольку она уже требует некоторой нагрузки на сервер и предупреждает пользователя о распространенных ошибках, прежде чем он должен ждать ответа от сервера.

Серверная сторона без клиентской части в порядке, клиентская сторона без серверной части - нет-нет.

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

То же самое относится и к проверке на стороне клиента. Модуль JQuery Validate довольно хорош, но вы можете написать свой, без проблем.

1 голос
/ 29 мая 2010

Проверка на стороне клиента является вежливой и удобной для конечного пользователя.

Проверка на стороне сервера является абсолютной необходимостью.

Как вы сказали, существует бесчисленное множество ресурсов о том, как лучше всего справиться с каждым. Одна простая стратегия заключается в проверке достоверности на стороне клиента и правильности на сервере - то есть используйте Javascript, чтобы убедиться, что входные данные имеют правильный тип и форму например, «выглядит как дата») и серверная логика для дополнительной гарантии того, что допустимый ввод имеет смысл (например, «находится в разумном диапазоне для этого пользователя»). Это может сэкономить вам немного AJAX. Это зависит от приложения, пользователей и ресурсов, которые вы хотите потратить на него. Если вы не возражаете против дополнительных запросов Javascript и HTTP, вы можете дублировать все проверки на стороне сервера на стороне клиента, но тогда у вас будет две отдельные программы, написанные на разных языках для поддержки и синхронизации.

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