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.
Fazer um forward usando servlets
W
3 Respostas
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 {
//faz de conta que o meumetodo caiu numa exception
meumetodo();
}
catch(Exception e) {
HttpSession sessao = request.getSession(true);
sessao.setAttribute("erro",e);
nextView = request.getRequestDispatcher("/Error.jsp");
nextView.forward(request,response);
}
no Error.jsp
<%
Exception excecao = (Exception) session.getAttribute("erro");
if (excecao == null)
out.println("Não existe erros");
else {
out.println(excecao.toString());
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
excecao.printStackTrace(pw);
out.print(sw);
sw.close();
pw.close();
// remove o atributo da sessao
session.removeAttribute("erro");
}
%>
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 :-)
RequestDispatcher d= request.getRequestDispatcher("caminhorelativo para uma jsp/servlet/...");
d.forward(request,response);
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 "/" )
W
Valeu pela ajuda…vou tentar fazer aqui…obrigado
Criado 11 de maio de 2003
Ultima resposta 12 de mai. de 2003
Respostas 3
Participantes 3
Alura Git Flow: entenda o que é, como e quando utilizar Entenda o que é Git Flow, como funciona seu fluxo com branches como Master, Develop, Feature, Release e Hotfix, além de vantagens e desvantagens.
Casa do Codigo Desmistificando WebAssembly: Alta performance,... Por Raphael Amorim — Casa do Codigo