Submit e voltar para a pagina anterior

6 respostas
F

tentarei ser claro…
eu estou querendo fazer o seguinte, assim que o usuário clicar em um botão (submit) eu irei inserir um registro no banco e voltar a pagina que ele inseriu atualizada (refresh)

isso porque o submit submete a uma outra página… e eu quero que processe minha servlet e volte pra pagina que chamou o submit atualizada (refres)

6 Respostas

A

Meu velho, você ta usando que framework?
é na mão mesmo?

seja mais claro.

no aguardo.
:slight_smile:

F

na mão mesmo… uso o eclipse + sysdeo

A

O código para ir para outra página esta na sua servlet mesmo ne??
seria nela que você mudaria.

A

tentarei ser claro…
eu estou querendo fazer o seguinte, assim que o usuário clicar em um botão (submit) eu irei inserir um registro no banco e voltar a pagina que ele inseriu atualizada (refresh)

isso porque o submit submete a uma outra página… e eu quero que processe minha servlet e volte pra pagina que chamou o submit atualizada (refres)

Você faz assim… digamos que a página seja submit.jsp, em que você tem uma tela de cadastro e listagem de qualquer coisa.
você dá um submit nessa página pra /MeuServlet.do?parametros, então essa URL está mapeada para executar um servlet.
Nesse servlet você chama o banco de dados e salva o registro no banco.
Joga os dados para exibir no jsp no contexto apropriado,
Então, no servlet você dá um forward para a página /submit.jsp.

F

entendi +-
tipo, estou colocando o jsp:forward e nao está indo, não aparece na tela

há algo de errado no meu código?
tipo, minha pagina index.jsp submete uma servlet, que no final eu quero rechamar a index.jsp...
qual o erro?

package bd;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class OperateDataBaseServlet extends HttpServlet{

	private static final long serialVersionUID = 1L;
	private Connection c;
	private int type = 0;
	
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
  
		try{
			Class.forName("org.postgresql.Driver");
			String url = "jdbc:postgresql://localhost/dwbd";
			c = DriverManager.getConnection(url,"postgres","321321");
		}catch 
			(Exception e){out.print("erro ao se conectar ao banco!");
		}
		
		if (request.getParameter("btnInsert") != null){
			try{
				Statement s = c.createStatement();
				s.executeUpdate("insert into ger_pessoa (pes_nome) values ('" + request.getParameter("nome")+ "')");
				s.close();
				c.close();
				type = 1;
			}catch(Exception e ){
				out.println("Falha na Inserção!");
			}
		}else{
			if (request.getParameter("btnUpdate")!= null){ 
				try{
					Statement s = c.createStatement();
					s.executeUpdate("update ger_pessoa set pes_nome = '" + request.getParameter("nome")+ "' where pes_cod = " + request.getParameter("cod"));
					s.close();
					c.close();
					type = 2;
				}catch(Exception e ){
					out.println("Falha na Atualização");
					out.println("update ger_pessoa set pes_nome = '" + request.getParameter("nome")+ "' where pes_cod = '" + request.getParameter("cod"));
				}
			}else{
				if (request.getParameter("btnDelete") != null){
					try{
						Statement s = c.createStatement();
						s.executeUpdate("delete from ger_pessoa where pes_cod = " + request.getParameter("cod"));
						s.close();
						c.close();
						type = 3;
					}catch(Exception e ){
						out.println("Falha na Exclusão");
					}
				}else{
					out.println("essa mensagem não deverá aparecer!");
				}
			}
		}

		out.println("<jsp:forward page='index.jsp' >");
		out.println("</jsp:forward>");
				
	}
}

edit---

resolvi usando o

response.sendRedirect("index.jsp");

porém queria saber o porque que não funcionou usando o jsp:forward

G

Ao invés de por o forward no final, tente o seguinte:

public class OperateDataBaseServlet extends HttpServlet{

	private ServletContext context;
	
	< suas outras propriedades >

	public void init(ServletConfig config) throws ServletException {
  		super.init(config);
		context = config.getServletContext();
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

	< aqui vai seu codigo >

	RequestDispatcher  dispatcher = context.getRequestDispatcher("/index.jsp");
	dispatcher.forward(request, response);
	
	}

}

Se funcionar, nos fale também. :wink:

Criado 25 de novembro de 2007
Ultima resposta 25 de nov. de 2007
Respostas 6
Participantes 4