Redirecionamento via post

2 respostas
S

Amigos preciso da ajudade vcs, gostaria de uma dica de como realizar um redirecionamento via post passando alguns parametros segue abaixo um exemplo.

Possuo um ServLet que irá receber um chamado realizar algumas operações e redirecionar para outro endereço, mas este endereço está esperando alguns parametros via post,
no codigo abaixo na linha 15 faço um redirecionamento via get passando os parametros de teste, tudo ocorre bem, mas preciso mudar a linha 15 para que o redirecionamento seja feito via post.

ServLet Redireciona

package servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(name = "Teste", urlPatterns = {"/Teste"})
public class Teste extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.sendRedirect("http://localhost:8084/ServidorWEB/TesteServidor?login=teste&senha=teste2");
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    public String getServletInfo() {
        return "Short description";
    }
}

ServLet Servidor

package servlet;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(name = "TesteServidor", urlPatterns = {"/TesteServidor"})
public class TesteServidor extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            String login = request.getParameter("login");
            String senha = request.getParameter("senha");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet TesteServidor</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Longin:" + login + "</h1>");
            out.println("<h1>Senha:" + senha + "</h1>");
            out.println("</body>");
            out.println("</html>");
        } finally {
            out.close();
        }
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    public String getServletInfo() {
        return "Short description";
    }
}

Obrigado!

2 Respostas

diogozero
Ao invés de paramêtros, você pode usar atributos na servlet que vai receber esse re-encaminhamento.

Ao invés de paramêtros, você pode usar atributos na servlet que vai receber esse re-encaminhamento.

S

diogozero:
request.getRequestDispatcher("SUA URL").forward(request,response);
Ao invés de paramêtros, você pode usar atributos na servlet que vai receber esse re-encaminhamento.

Amigo obrigado pela ajuda, tentei fazer o que tu disse não sei se ta correto mas o erro apresentando no momento do redirecionamento é o erro 404.

Tentai colocar 2 atributos na classe e tb tentei adiciona-los dentro do request como nas linhas comentadas ambas as formas da erro 404

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        login="teste";
        senha="teste2";
//        request.setAttribute("login", "teste");
//        request.setAttribute("senha", "teste2");
        request.getRequestDispatcher("http://localhost:8084/ServidorWEB/TesteServidor").forward(request,response); 
        //response.sendRedirect("http://localhost:8084/ServidorWEB/TesteServidor?login=teste&senha=teste2");
    }
Criado 29 de agosto de 2012
Ultima resposta 30 de ago. de 2012
Respostas 2
Participantes 2