Meu servlet importa uma classe que tem um método chamado cadastra(). Devo verificar se os dados do formulário foram digitados corretamente no servlet ou no método cadastra() da classe?
Isso gera discussoes milenares
Eh uma otima pergunta.
No framework que a gente fez pro guj, a gente colocou um metodo, para todo o tipo de acao, que chama checkPermissions(), verifica se o usuario ta logado, etc.
Pesquisando mais na net, vi que tem frameworks que tem um validate(), entao, toda vez que voce recebe algo, voce manda o request pra la, e la ta LOTADO de if, pra ver se veio todos os dados!
tipo if(login == null) throw new ValidateException (“campo login nao preenchido”);
Realmente é uma questão complicada!!
Nem mesmo padrões como MVC deixam claro o que fazer a este respeito! Mas, como diz uma das convenções primordiais da programação orientada e objetos “mantenha a responsabilidade com os dados”. Pensando desta forma, o ideal seria manter estas validações junto aos objetos que recebem os dados, e não nos servlets, fazer o contrário poderia trazer problemas se você fosse disponibilizar uma interface SWING para a mesma camada de negócios, teria que reescrever todas as validações! Algo muito pouco desejável…
No entanto, note que existe uma serie de "se"s ai no meio “SE voce for fazer isso, SE voce for fazer aquilo…” então vai depender muito da magnitude do projeto, e da questão de expandabilidade no futuro!