Direcionar Página

Pessoal,

Estou escrevendo um JSP.
De acordo com uma variável de sessão quero direcionar este JSP que estou para outro.
Em java script dá pra fazer isso com “location”.
Eu conseguia fazer isso em php, mas ainda não consegui fazer em jsp.

Agradeço muito se alguém puder me ajudar!!

Gustavo.

response.sendRedirect("a_pagina.jsp");

:wink: :wink:
flw!
abraços!

Vc está querendo passar para outro JSP é isso?

Pq, até onde eu sei, vc tem que passar por um servlet para estar passando para outra página…

Flw

Daniel, vc escreveu: [quote]response.sendRedirect(“a_pagina.jsp”);[/quote] mas isso vc está fazendo em um servlet? ou no JSP mesmo?

Obrigado Daniel!

Renan,

É o seguinte … estou precisando desse tipo de função para alguns casos específicos como por exemplo:
-Estou em um JSP e foi ler as variáveis de sessão, e estas estavam null. Ou foi algum erro ainda não tratado ou um usuário escreveu direto o link do jsp. Para que não aparece nenhum erro, eu mando um redirect para outra página informando o problema ao usuário.

Talvez eu consiga fazer isso através do erro do web.xml. Será?

Bem … por enquanto a solução que arrumei foi essa.

Obrigado aos dois,
Gustavo.

Cara, no web.xml vc consegue estar redirecionando para a pagina de erros…

é alguma coisa so tipo:

<error-page> <exception-type>Tipo de excessao</exception-type> <location>/WEB-INF/jsp/global/ErrorPage.jsp</location> </error-page>

Acho que assim, qdo der este tp de excessao ele já manda para pagina de erro.

Acho… hehehe

pode ser num Servlet ou num JSP… :grin: :lol:

blz? :wink:
flw!
abraços!

DanielBadawi escreveu:

Mas colocando o sendRedirect num JSP não ficaria meio “sujo” o JSP?

Pessoal,

estava usando o sendRedirect e começõu a dar o erro que segue abaixo. Eu tenho que instanciar response?

obrigado,
Gustavo.

exception

java.lang.IllegalStateException
org.apache.coyote.tomcat5.CoyoteResponseFacade.sendRedirect(CoyoteResponseFacade.java:352)
org.apache.jsp.home_jsp._jspService(home_jsp.java:94)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)

[quote=“renan_daniel”]DanielBadawi escreveu:

Mas colocando o sendRedirect num JSP não ficaria meio “sujo” o JSP?[/quote]

acho q nao… :roll:

[quote=“FonsecaJava”]Pessoal,

estava usando o sendRedirect e começõu a dar o erro que segue abaixo. Eu tenho que instanciar response?

obrigado,
Gustavo.

exception

java.lang.IllegalStateException
org.apache.coyote.tomcat5.CoyoteResponseFacade.sendRedirect(CoyoteResponseFacade.java:352)
org.apache.jsp.home_jsp._jspService(home_jsp.java:94)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)[/quote]

isso as vezes acontece mesmo… mas é simples de resolver…
é só por um return ; depois do sendRedirect pq vc precisa de uma instrução de retorno… acho q é isso… uma vez q li…

aí vc pode usar tipo assim:

if(session.getAttribute("logado")==null || usuario.getUsuario() == null)
{
response.sendRedirect("index.jsp?error=true&message=Você precisa se logar no sistema.");
return;
}

colocar o return ; depois do sendRedirect deve resolver!
qualquer coisa posta aí!

flw!
abraços!

da pra vc fazer usando a JSTL tbm, fica mais elegante, caso vc queira fazer isso dentro de uma JSP e naum de eu servlet

basta fazer:

<c:redirect url="http://qqcoisa" />

lembrando q vc precisa dizer q ta usando a jstl, core no caso

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>