Fazer um forward usando servlets

Olá Pessoal, estou aqui com uma dúvida…tenho um servlet e preciso, depois de algumas validações, fazer um forward para uma página jsp. Em páginas jsp sei que posso fazer <jsp:forward page=“URL”/>, mas em servlet, como chamo uma outra página ? Preciso também que essa página chamada recupere valores de atributos. Eu consigo setar o valor desses atributos no servlet e depois recuperá-los na página chamada por esse mesmo servlet , ou tenho que setar esses valore na pagina que antecede a chamado do servlet ? Espero que eu tenha sido claro…e conto com a ajuda de vocês…Obrigado.

Aí vai uma noção para você
Na servlet :

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpSession;
......
     RequestDispatcher nextView = null;
try &#123;
  //faz de conta que o meumetodo caiu numa exception
   meumetodo&#40;&#41;;
&#125;
catch&#40;Exception e&#41; &#123;
     HttpSession sessao = request.getSession&#40;true&#41;;
     sessao.setAttribute&#40;&quot;erro&quot;,e&#41;;
     nextView = request.getRequestDispatcher&#40;&quot;/Error.jsp&quot;&#41;;
     nextView.forward&#40;request,response&#41;;
&#125;

no Error.jsp

&lt;%
    Exception excecao = &#40;Exception&#41; session.getAttribute&#40;&quot;erro&quot;&#41;;
    if &#40;excecao == null&#41;
        out.println&#40;&quot;Não existe erros&quot;&#41;;
    else &#123;       
        out.println&#40;excecao.toString&#40;&#41;&#41;;
        StringWriter sw = new StringWriter&#40;&#41;;
        PrintWriter pw = new PrintWriter&#40;sw&#41;;
        excecao.printStackTrace&#40;pw&#41;;
        out.print&#40;sw&#41;;
        sw.close&#40;&#41;;
        pw.close&#40;&#41;;
        // remove o atributo da sessao
        session.removeAttribute&#40;&quot;erro&quot;&#41;;
    &#125;
%&gt;

a partir de um servlet, para fazer um forward ou um include como o de uma JSP (não é para mandar o browser para outra pagina, e sim dizer para outra pagina ou servlet se sua aplicação continuar o processamento, exatamente como no <jsp:forward /> sitado)

você utiliza este codigo :slight_smile:

[code] RequestDispatcher d= request.getRequestDispatcher("caminhorelativo para uma jsp/servlet/…");
d.forward(request,response);

[/code]

você pode obter também um RequestDispatcher a partir do ServletContext, a unica diferença entre os dois request dispatchers é que o obtido no request, aceita caminhos relativos ao servlet atual, o obtido no ServletContext não, aceita apenas caminhos absulutos (iniciados por “/” )

Valeu pela ajuda…vou tentar fazer aqui…obrigado