Como e onde é recomendável que se faça a validação de dados(sem o uso de frameworks).
Eu faço assim:
Antes de enviar os dados eu faço a validação no cliente(JavaScript).
Depois, eu pego os parâmetros do formulário dentro do servlet.
Em seguida, eu chamo um método da minha classe, que eh o meu bean e tem as minhas regras de negócio, para validar os campos.
Caso os dados estejam corretos eu instancio a classe.
Caso contrário eu retorno para o jsp exibindo um erro.
Isso está correto?
Obrigado
Marcos
Eu acho que vc está fazendo correto, pois imagine se o cliente deixe desabilitado no browser o javascript, por isso concordo vc validar tanto no cliente quanto no servidor !!!
Tem uma API de renderização de HTML/CSS e Javascript para Java chamada Formj.
Na API entre outras funções, tem a validação pre post com expressões regulares com os parsers;
DATE
NUMERIC
NOTNULL
EMAIL
MONEY1
MONEY2
CEP1
CEP2
TIME
ALPHA
ALPHA_SPACE
ALPHANUMERIC
ALPHANUMERIC_SPACE
FILENAME
FILENAME_LATIN1
ALPHA_LATIN1
ALPHANUMERIC_LATIN1
REALNUMBER1
REALNUMBER2
URL
NAME_LATIN1
DATE_OR_NULL
NUMERIC_OR_NULL
EMAIL_OR_NULL
MONEY1_OR_NULL
MONEY2_OR_NULL
CEP1_OR_NULL
CEP2_OR_NULL
TIME_OR_NULL
ALPHA_OR_NULL
ALPHA_SPACE_OR_NULL
ALPHANUMERIC_OR_NULL
ALPHANUMERIC_SPACE_OR_NULL
FILENAME_OR_NULL
FILENAME_LATIN1_OR_NULL
ALPHA_LATIN1_OR_NULL
ALPHANUMERIC_LATIN1_OR_NULL
REALNUMBER1_OR_NULL
REALNUMBER2_OR_NULL
URL_OR_NULL
NAME_LATIN1_OR_NULL
Algumas funcionalidades de programação OO em Html. Assim;
//3 input=text
ParserText pt4 = new ParserText("teste4",ParserText.DATE);//Esse vai com uma setinha(obrigatório)
ParserText pt5 = new ParserText("teste5",ParserText.ALPHA);//Esse vai com uma setinha(obrigatório)
ParserText pt6 = new ParserText("teste6",ParserText.EMAIL_OR_NULL);//Esse esse não tem seta, pois não é obrigatório
Submit s = new Submit("hteste","Enviar",ParserText.makeTest(pt4,pt5,pt6));//Olha a mágica!!
s.setCenter(true);
FlowLayout fl = new FlowLayout(pt4,pt5,pt6);//Apenas para organização
fl.setVertical(true);
WinForm win2 = new WinForm("Teste de Parse","300","200");
win2.form.setAction("pagina.jsp");
win2.addCenter(fl);
win2.addSouth(s);
win2.setMovable(true);//mover a janela
win2.setClosable(true);//"fechavel"
out.print(win2.getObject());

Em http://formj.sourceforge.net -> exemplos -> Validação Pre Post.
Se for utilizar pegue a versão 1.3.9
Eu acredito que é importante mesmo validar tanto do lado do cliente quanto no servidor.
Interessante essa api.
Mas e quanto a validação no servidor? Está correto o modo como eu faço?
[quote=jdeveloper]Eu acredito que é importante mesmo validar tanto do lado do cliente quanto no servidor.
Interessante essa api.
Mas e quanto a validação no servidor? Está correto o modo como eu faço?[/quote]
Concordo com vc tem que ser dos dois lados.
No caso do formj usa-se ajax de uma maneira bem fácil, com essa facilidade pode-se inferir que para usar ajax só via javascript, se o cara desabilitar o javascript não funciona nada, nem chega no servidor.
Validação nunca é d+, consistência é que é o cara! 
Eu gostei da facilidade em se implementar a validação.
Mas eu não gosto de ficar tão dependente da framework. Eu preferiria definir layout, organização e formatação utilizando css e html.
Pelo que eu entendi em todas as páginas eu teria que definir tudo isso. Enquanto se eu usar css eu defino isso em um só arquivo.
Só uma correção. O Formj é uma API(open source) e não um framework.