Parar execução de um JSP num determinado Ponto

2 respostas
A

Pessoal,

Estou desenvolvendo um aplicativo em JSP, onde ao logar, o usuário recebe um objeto na sua sessão indicando que ele está logado e as permissões dele dentro do site.

Dentro de cada página do site utilizo um include onde testo a existência e os dados deste objeto da sessão (verificar se o usuário está logado e possui permissão para determinadas áreas do site).

Caso estes dados estejam incorretos ou o objeto não exista (o usuário não está logado), eu dou um response.sendRedirect pra uma página padrão de erros, afim de exibir um erro.

Teoricamente, (pelo menos em ASP é assim), depois de executar o sendRedirect, a execução deveria ser transmitida a pagina de erro. Mas o que acontece é que após o sendRedirect, ele executa o restante do código, e após é reencaminhado para a página de erro.

Pergunta: Como faço para parar totalmente a execução de um JSP, e reencaminho a execução para outro JSP??? Alguém tem alguma solução pra isso???

muito obrigado…

aleGiordani

2 Respostas

Daniel_Quirino_Olive

Mesmo em ASP, após o Response.sendRedirect(), o restante do código é executado. Uma saída, nada elegante, seria você colocar um “return;” onde você quer que a página pare de ser executada.

rodrigousp

Minha opinião:
[list]Existem duas soluções para isto.
E, o seu código poderia ser refatorado.[/list]
Primeiro…
usando taglibs você poderia facilmente exibir somente o que vc deseja.

<logic:present name="nome_da_variavel"> código restrito </logic:present> <logic:notPresent ... > exceção </logic:notpresent>

Se a variavel estiver presente em qualquer escopo, código restrito é apresentado. Senão… o código exceção é renderizado. Note que exceção pode ser um redirect por exemplo.

Outra forma de fazer isso é usando filter

Para usar filter crie uma classe que implemente filter. Descreva as operações do filtro em doFilter e declare o filter no web.xml desse jeito:

<filter> <filter-name>nome do filter file</filter-name> <filter-class>nome da classe</filter-class> <init-param> <param-name>X</param-name> <param-value>valor</param-value> </init-param> </filter>

Qualquer dúvida dá uma olhada em …
http://java.sun.com/products/servlet/Filters.html

Segundo …
Repetições em páginas podem ser evitadas com o uso de um template.
Que tal utilizar “tiles” para preservar a estrutura de suas páginas ?

(Tiles é um subprojeto do projeto Struts da Jakarta.)

[]´s
[/url]

Criado 13 de outubro de 2003
Ultima resposta 13 de out. de 2003
Respostas 2
Participantes 3