Filtros

Galera o seguinte, eu tenho alguns filtros para restringir o acesso a determinadas áreas do meu site, quando os dados não condizem eu redireciono para uma página. Porém eu tenho que especificar que página é essa. Eu gostaria por exemplo de quando o usuário tentar acessar uma área de cadastro, que ele naum tem acesso, que ele seja redirecionado para a pagina anterior. Entenderam ??
Tipo, estou na pagina lista.jsp, e tem um link la para cadastra.jsp, ele vai cair no filtro e eu queria que ele redirecionasse para lista.jsp (mas sem eu ter que especificar lista.jsp, pois esse filtro eh usado em mais de uma página…)

Tem diversas maneiras de fazer esse controle de acesso…
Depende mto da arquitetura do seu projeto.

Uma saída pode ser usar um Filter.
Filters vão “interceptar” as requisições e podem alterar a resposta gerada.

Vc não entendeu, eu ja tenho um filtro apenas quero que ao invés de colocar uma página no request.sendredirect possa colocar algo que tenha a mesma função do comando history.go(-1) usado em javascript para retornar a págiona anterior…

Resolvido!! Apenas redirecionei pra uma página de erro e la coloquei um botão voltar com código javascritp, ficou perfeito…
Vlw

pra uma página de erro???, ódigo javascrit???

bom, problema resolvido com uma concepção fraca.

para esse tipo de controle use : <% String id = (String)session.getAttribute("administrador"); if(id == null || id.length() < 1){ response.sendRedirect("book_user/home.jsp"); } %>

nesse caso o cliente não tem accesso à algumas páginas de administrador por exemplo, mesmo que ele descobre o link da página de administrador (http://www.seuSite.com.br/pages/administrador.jsp) vai ser redirecionado para home.jsp porque ele não tem a autorisação de accesso, porque o id dele não um id de administrador, somente um id de um usuário simples.

op: nunca use JavaScript como ferramenta de controle da sua Aplicação, mas jamais!, JavaScript em uma aplicação web Java serve somente para validação de campos antes de execução de ação.

um grande abraço

Primeiro vc precisa entender o que eu fiz pra depois vir falar que é uma concepção fraca. Eu fiz exatamente o que vc fez, apenas queria que no response.sendredirect tivesse alguma forma de redirecionar para página anterior, quando eu digo anterior leia a mesma página que o comando em javascript history.go(-1) me retornaria. Como a servlet não é capaz de executar comandos JS redirecionei para uma página que dizia, acesso restrito e la um botão voltar com o comando history.go(-1). Ngm aqui falou nada sobre javascript como controle de aplicação… O pessoal precisa ler aqui os posts antes de criticar…

e se não tem histórico no browser?, por exemplo o cliente colocou o link diretamente no browser?

http://www.seusite.com.br/admin.jsp

Guitar_Men

no seu caso tem que usar :

request.getSession().setAttribute(ULTIMA_ACTION, request.getServletPath() + "?" + request.getQueryString());

e na sua Action coloque uma condição que se ULTIMA_ACTION == NULL dar pra ela a página home (no caso se o cliente colocou o link diretamente no browser e não há histórico)

um abraço Guitar_Men