segunda-feira, 9 de abril de 2007

No forward QueryString pode ser capturada de maneira diferente

Quando um servlet chama repassa a requisição para outro, utilizando o método forward do RequestDispatcher, este outro servlet pode capturar a QueryString do primeiro tanto utilizando o método getQueryString() de HttpServletRequest como utilizando o attributo "javax.servlet.forward.query_string" da requisição.

Segue o servlet que repassa a requisição para o próximo
public class MeuServlet1 extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
request.getRequestDispatcher("/MeuServlet2").forward(request,response);
}
}

Agora o servlet que recebe a requisição:
public class MeuServlet2 extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter p = response.getWriter();
p.print("Query String1: " + request.getQueryString() );
p.print("Query String2: " + request.getAttribute("javax.servlet.forward.query_string") );
}
}

Informação inutil para quem está desenvolvendo, mas importante para quem assim como eu estuda para tirar a SCWCD.

Nenhum comentário:

Postar um comentário