Является ли проверка подлинности JSF на стороне клиента или на стороне сервера?

Я выполнил логику проверки следующим образом:

        <h:inputText id="title" value="#{...}" 
            required="true" requiredMessage="...some..text..." 
            validatorMessage="...some..other..text..." >
            <f:validateLength minimum="10" maximum="50"/>
        </h:inputText>

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

Может кто-нибудь объяснить, что: -)

Приветствия

Ответы

Ответ 1

При проверке на стороне клиента это клиент (webbrowser), который проверяет ввод с помощью клиентского языка, например. JavaScript. При проверке на стороне сервера это сервер (веб-сервер), который проверяет ввод с помощью серверного языка, например. Ява.

Вы никогда не должны проверять на стороне клиента только, потому что конечный пользователь может контролировать (и, следовательно, также hackable/spoofable). Обычно вы хотите использовать проверку на стороне клиента, поскольку она дает гораздо более высокую обратную связь. Конечный пользователь не должен ждать завершения подачи формы и не должен сталкиваться с "вспышкой содержимого" (страница затухает, а затем повторно отображается с новым контентом). Вы хотите использовать проверку на стороне сервера, чтобы обеспечить целостность представленных данных. Конечный пользователь никоим образом не контролирует результат проверки на стороне сервера.

В случае JSF проверка всегда является серверной. Поскольку JSF 2.0 позволяет отправить форму (и, следовательно, также проверить ее), используя встроенную аяксиальную функциональность. Это сочетает в себе лучшие из двух миров: мгновенную обратную связь без вспышки контента и надежность/целостность проверки на стороне сервера.