Pessoal estou com um problema numa aplicação que ela faz um request simultaneo de processos um atraz do outro acontece que quando a aplicação faz um response ela não pega o ultimo processo e sim o antipenultimo a aplicação deveria pegar por exemplo o processo 1 fazer um request e depois response limpar da sessão esse processo para depois pegar o proximo e assim por diante mais ela não esta limpando da sessão para pegar o proximo processo.
Essa aplicação esta bem ruim para dar uma manutenção para ser ter uma ideia a classe onde preciso de fazer essa manutenção tem 3200 linhas.
pra invalidar uma sessão use session.invalidade();
Então rissato não seria exatamente invalidar da sessão preciso apenas limpar tem alguma outras opção tipo
session.destroy(); acho que isso mesmo né ? teria alguma outra solução ?
Não existe session.destroy(). Segundo a especificação quando você quer limpar a sessão deve-se usar o session.invalidate(), essa é a recomendação.
Havia um bug há algum tempo no tomcat com esse código:
session.setAttribute("x", new Integer(1));
session.invalidate();
session.getAttribute("x");
O correto era retornar null, pois a sessão sendo invalidada deveria remover todos atributos, porém o tomcat não fazia isso. Não sei se foi corrigido.
Mas se você quer digamos que apenas limpar tudo sem invalidar a sessão, você pode fazer uma gambiarrazinha:
Enumeration<String> en = session.getAttributeNames();
while(en.hasMoreElements()) {
String name = en.nextElement();
session.removeAttribute(name);
}
Blz galera valeu isso mesmo.