Servlet - Parametros

8 respostas
C

Olá,

Tenho uma servlet e aualmente estou pegando alguns parametros da URL. (nome, idade e sexo)

nome = getParameter("nome");

Como posso tratar um possível erro se, porventura, eu inserir um campo que não existe? Por exemplo:

nome = getParameter("parametroQueNaoExiste");

ou seja

nome = getParameter("casa");

Gostaria de indicar algo do tipo: “Este parametro nao existe / não é valido”.

Obrigado !!!

8 Respostas

bzy

Campos que não existem retornam NULL.

C

Entendo,

Mas tem uma solução onde eu informo quais são os parametros válidos e da um erro/exceção quando coloco um campo que nao existe ?

bzy

Você pode fazer algo assim:

Set<String> paramValido = new HashSet<String>(); paramValido.add("nome"); .... for(String p : paramValido){ if(!request.getParameterMap().containsKey(p)){ //erro } }

Obs. Não tenho como testar aqui.

C

Funcionou =)

Bom, uma última coisa! Na minha URL passo os seguintes parametros:

http://localhost/teste?nome=“joao”&idade=“40”&sexo=“M”

Esses são os corretos. Existe uma solução onde, eu passe um parametro desnecessário, e ele acuse um erro? Por exemplo:

http://localhost/teste?nome=“joao”&idade=“40”&sexo=“M”&pais=“Brasil”

retorne -> Erro: pais não é um parametro válido !

Att,

bzy

Tem a solução acima.

Pode fazer ao contrário também, adicionar na lista parâmetros inválidos e se achar algum, acusar o erro.

C

Então…

É que na verdade tenho uns parametros obrigatórios: Nome por exemplo.

Daí, tenho os opcionais que são sexo e idade (ou seja, se nao vierem na URL nao tem problema).

E o usuário pode ficar colocando paramentros adoidado na URL.

Então o sisteminha tem que permitir a omissão de parametros opcionais e, ainda, indicar quais os parametros que estao sendo passador erroneamente. Entendeu?

Obrigado novamente

bzy

Deixa eu entender, você tem um sistema que aceita diversos parametros.
Alguns são obrigatórios, outros opcionais e outros inválidos.
Já que todos os parametros afetam o sistema, você tem que bloquear os inválidos e não simplesmente ignora-los.
Então tem que verificar se um param obrigatório existe (ele tem que existir), verificar se um opcional existe (pode ou não existir) e verificar se um inválido existe (erro se existir).

É isso?

C

exato

Criado 28 de setembro de 2010
Ultima resposta 29 de set. de 2010
Respostas 8
Participantes 2