Tenho dois botões submits em um servlet. Como saber qual del

Olá tudo bem?

A minha pergunta é muito básica, entrentanto, estou precisando saber a resposta.

Tenho um servlet com um formulário que possui dois campos

nome e endereco

e dois botões (incluir e excluir)

Quando um deles for acionado, a classe Cliente é acionada para realizar uma inserção ou deleção na base de dados, mas como faço para recuperar qual dos botões foi acionado na classe Cliente já que os dois são do tipo submit?

Se não for pedir muito, eu gostaria de um exemplo.

Obrigado por sua atenção e até mais!

Há várias maneiras, vou colocar uma q eu acho fácil

crie um campo hidden no sei for tipo

<input type=hidden name=action value="">

depois no btn vc poe onclick=“document.form.action.value=acaodobotao”
e no servlet é só vc ver o valor do action e pronto

  • uma vez, há outras maneiras, essa é apenas uma delas

Vc tbm poderia ter um único botão mais um radio button para cada opção.
cada rb vai ter um valor. Suponhamos que seja 1: Exclui, 2: Insert e 3:Atualizar.

Passe o rd com parâmetro, dependendo da opção do kra vc executa a tarefa.
Vc pode até ter um javascript mudando o label do botão conforme a opção selecionada…

um abraço… :wink:

OBRIGADO ! SOU INICIANTE NESSA área de Web e não tenho muita malícia com html, então vou passar o código ok
e vejam o que podem fazer por mim

Obrigado mais uma vez

package servlets.venda;

import java.io.;
import javax.servlet.
;
import javax.servlet.http.*;

public class TelaCadastro extends HttpServlet
{

public void doGet (HttpServletRequest request, HttpServletResponse response)
	throws IOException, ServletException
	{
			response.setContentType("text/html");
			PrintWriter out = response.getWriter();
			
			Mensagem n = new Mensagem();
			String numeroDaSessao = "0";
			
			try
			{
				HttpSession sessaoAdm = request.getSession(true);
				IdSessao atIdSessao = (IdSessao)sessaoAdm.getAttribute("novaSessaoAdm");
				numeroDaSessao = atIdSessao.getIdSessao();					
			}
			catch(Exception e)
			{ } 								
							
			Conexao conecta = new Conexao();							
				
			if (conecta.setValidaIdSessao(numeroDaSessao) == true)
			{				
				out.println("<html>" +
								"<head>" +									 
								"<title>Nova pagina 1</title>" +
								"</head>" +
								"<body  bgcolor='teal' text = 'white'>" +
 								"&lt;hr size = '3'&gt;		&lt;form name = 'a6' method = 'post' action = 'sisCliente'&gt;"+
								"&lt;fieldset&gt;"+
 								"	<input type='reset' value='Novo' name='novo'>" +											 
 								"	<input type='submit' value='Salvar' name='salvar'>" +
 								"	<input type='submit' value='Excluir' name='excluir'>" +									 								 								"	<input type='hidden' name='insert'>" +	

								"&lt;/fieldset&gt;"+									 									 
								"&lt;fieldset&gt;"+
		  								"<pre>" +
	 										"Nome      <input type='text' name='nome' size='60'><br><br>" +
 	 										"Endereço  <input type='text' name='endereco' size='60'><br><br>" +
	 										"Telefone  <input type='text' name='telefone' size='10'>" +
			 							"</pre>" +
								"&lt;/fieldset&gt;"+
	 								"&lt;/form&gt;" +
	 							" </body>" +
								"&lt;/html&gt;");
	  		}
		 	else
			{
					out.println("&lt;html&gt; &lt;head&gt; &lt;meta http-equiv= 'refresh' " + 
		  		    " content = '4; url = javascript:history.back();' " +
					 " &lt;/head&gt; <body bgcolor='teal' text = 'white'>" + 
					 " Numero do idSessao: "+ numeroDaSessao + 
					 " Você não possui permissão para está sessão.<br> " + 
				    "Você será redirecionado para a tela de login.&lt;/h2&gt;</body>&lt;/html&gt;");								
			}
	} 

}

Caramba, desculpe-me, virou uma confusão danada aqui vai o código html

“<hr size = ‘3’><form name = ‘a6’ method = ‘post’ action = sisCliente’>”+
“<fieldset>”+
" " + " " + " " + " " +
“</fieldset>”+ “<fieldset>”+

” +
"Nome

" +
"Endereço

" +
"Telefone " +
” +
“</fieldset>”+

sugiro usar “button” ao invés de “submit”.

e ai vc faz um javascript para direcionar o tipo da acao

&lt;script language=&quot;javascript&quot;&gt;
 function inserir&#40; seuForm&#41; &#123;
    acao.value = &quot;inserir&quot;;
    seuForm.submit&#40;&#41;;
 &#125;

 function excluir&#40; seuForm &#41; &#123;
    acao.value = &quot;excluir&quot;;
    seuForm.submit&#40;&#41;;
 &#125;
&lt;/script&gt;

&lt;form name=&quot;seuForm&quot; action=&quot;/SeuServlet&quot;&gt;
  &lt;input type=&quot;text&quot; name=&quot;nome&quot; value=&quot;&quot;&gt; &lt;br&gt; 
  &lt;input type=&quot;text&quot; name=&quot;idade&quot; value=&quot;&quot;&gt; &lt;br&gt; 
  &lt;input type=&quot;hidden&quot; name=&quot;acao&quot; value=&quot;&quot;&gt;
  &lt;input type=&quot;button&quot; name=&quot;inserir&quot; value=&quot;inserir&quot; onClick=&quot;inserir&#40;this.form&#41;;&quot;&gt; 
  &lt;input type=&quot;button&quot; name=&quot;excluir&quot; value=&quot;excluir&quot; onClick=&quot;excluir&#40;this.form&#41;;&quot;&gt;
&lt;/form&gt;

E no seu Servlet, pelo valor do parametro “acao” vc sabe qual acao execuitar (inserir, excluir).

Muito obrigado a todos!

Gente, nao precisa de nada disso!

&lt;input type=&quot;submit&quot; name=&quot;foo&quot; value=&quot;OK&quot;/&gt; &lt;input type=&quot;submit&quot; name=&quot;bar&quot; value=&quot;Cancelar&quot;/&gt;

No servlet:

[code]boolean fooPressed = request.getAttribute("foo")==null;
boolean barPressed = request.getAttribute("bar")==null;

if(fooPressed) doFooStuff();
if(barPressed) doBarStuff();[/code]

:wink:

CV

fiz da forma como você indicou, entretanto, as duas variáveis estão retornando true, desta forma o registro é inserido e depois deletado

Eu troquei getAttribute por getParameter, mas ocorre uma inversão

quando solicito inserir ele exclui

e quando solicito excluir ele insere

Obrigado!

Putz, foi mal sandro, eu bobeei no codigo. Deveria ser assim:

[code]boolean fooPressed = request.getParameter("foo")!=null;
boolean barPressed = request.getParameter("bar")!=null;

if(fooPressed) doFooStuff();
if(barPressed) doBarStuff();[/code]

Olá CV !

Muito obrigado!

Está funcionando muito bem!

Valeu mesmo!

Obrigado também a todos que responderam.

Tem como eu atribuir por exemplo no botao EXCLUIR, ele pegar o valor do registro codigo qdo eu clicar nele e ele excluir o registro desse codigo q eu peguei?
Tipo ele vai mostrar os registros se tiver + q 1, e tipo se eu quiser excluir o registro 2 q aparece la, e eu clico no botao EXCLUIR do resgitro 2 ele tem q apagar o resgitro dois e nao o primeiro.
Por eu fiz de um jeito aqui so q ele exclui o 1 resgistro q ele mostra.
Tipo eu coloquei um <INPUT TYPE=‘text’ size=‘1’ NAME=‘I_codigo’ value=" +rs.getInt(“codigo”)+"> pra ele pegaro valor da caixa de texto e ele pega so q ele pega o primeiro so.
Entao queria sabers tem jeito… POde ser com Radio Button ?
O BD esta em ACCESS…
Os dois codigos estao em Servlets diferentes…

if ( opcao.equals(“CONSULTAR”) )
{// Recuperando o Codigo digitado no Formulário
partindo = req.getParameter(“I_partindo”);
voos = new Voos( partindo, conexao );
out.println("<tr><td bgcolor=’#CCCCCC’ BORDER=‘1’ BORDERCOLOR=’#FFFFFF’ cellpadding=‘0’ cellspacing=‘0’><div align=‘center’>Codigo</div></td>");
out.println("<td bgcolor=’#CCCCCC’ BORDER=‘1’ BORDERCOLOR=’#FFFFFF’ cellpadding=‘0’ cellspacing=‘0’><div align=‘center’>Aeronave</div></td>");
out.println("<td bgcolor=’#CCCCCC’ BORDER=‘1’ BORDERCOLOR=’#FFFFFF’ cellpadding=‘0’ cellspacing=‘0’><div align=‘center’>Excluir</div></td></tr>");
try
{ ResultSet rs = voos.consultar (partindo);
if (rs==null)
{ out.println(“Dados Não Encontrados…”); }
else
{
while (rs.next())
{
out.println("<tr ><td bgcolor=’#CCCCCC’ BORDER=‘1’ BORDERCOLOR=’#FFFFFF’ cellpadding=‘0’ cellspacing=‘0’><div align=‘center’>"+rs.getInt(“codigo”)+"</div></td>");
out.println("<td bgcolor=’#CCCCCC’ BORDER=‘1’ BORDERCOLOR=’#FFFFFF’ cellpadding=‘0’ cellspacing=‘0’><div align=‘center’>" +rs.getString(“aeronave”)+"</div></td>");
out.println("<td bgcolor=’#CCCCCC’ BORDER=‘1’ BORDERCOLOR=’#FFFFFF’ cellpadding=‘0’ cellspacing=‘0’><div align=‘center’><input type=‘submit’ name=‘operacao’ value=‘EXCLUIR’ ></div></td></tr>");
}
}
}
catch(Exception e){out.println("Erro: " + e.getMessage());}
}

No Comando sql esta assim {Outra Servlet]:
public boolean excluir( String codigo)
{
boolean aux = false;
try
{String sql = " DELETE FROM Voos WHERE codigo = “+Integer.parseInt(codigo)+”";
Statement st = conexao.createStatement();
st.executeUpdate( sql );
System.out.println(sql);
aux = true;
}
catch ( SQLException e )
{
aux = false;
System.out.println( e.getMessage() );
}
return aux;
} [/color][/color][/b]

Eh soh um link para excluir aquele item em questao - ou seja, cada item tem seu proprio link de exclusão?

Se for nao precisa nem de form, use apenas o link - no loop em que voce constroi o HTML faca:

&lt;a href="excluir?id=[jogue o ID aqui]"&gt;&lt;/a&gt;

No servlet que recebe a requisicao faca um request.getParameter(“id”) e pronto - voce tem o ID a ser excluido. Passe-o entao para o metodo que realiza a exclusao e seja feliz.

Quando for postar codigo, use a tag [code], senao fica um lixo pra ler. :smiley:

BTW, ressucitaste esse topico, hein? :smiley:

Marcio Kuchma

No servlet que recebe a requisicao faca um request.getParameter(“id”) e pronto - voce tem o ID a ser excluido. Passe-o entao para o metodo que realiza a exclusao e seja feliz.

if ( opcao.equals("EXCLUIR") )
{
// Recuperando o Codigo digitado no Formulário
codigo = req.getParameter("I_codigo");
venda = new Vendas( codigo, id, conexao );

aqui eu preciso passar o parametro “id” qdo eu for criar o objeto ficando assim:

if ( opcao.equals("EXCLUIR") )
{
// Recuperando o Codigo digitado no Formulário
codigo = req.getParameter("I_codigo");
id = req.getParameter("id");
venda = new Vendas( codigo, id, conexao );

Foi mal ai, hehehe, faz pouco tempo q entrei no forum…

No kso do script eu coloco como se fosse HTML mesmo? pq nunca fiz isso, como ficaria o comando com o JavaScript citado acima, dentro da Servlet?

Xi Marquinho. Nao entendi - que Javascript? :smiley:

Marcio Kuchma

Irônico…
Sleep acordando um tópico que durmiu durante mais de um ano…

:smiley:

Xi Marquinho. Nao entendi - que Javascript? :smiley:

Marcio Kuchma[/quote]
:lol: ahahaha tava no outro POST o JavaScript :lol:

da uma olhada :
http://www.guj.com.br/posts/list/17899.java#93637

Tipo la eu fiz com o Botao Submit, qual dos dois e o melhor metodo, ou seja o + facil… :smiley:

Agora nao lembro se eu fiz com doPost ou doGet??? :lol:

[quote=Diogenes]Irônico…
Sleep acordando um tópico que durmiu durante mais de um ano…

:smiley: [/quote]

Hehehe foi mal ai, sou novato ainda, e e foda… :oops:
Primeiro Trabalho e tal ne… e fogo… :lol:

Li meio por cima o outro topico… bom, veja - se voce tem um botao ou link por item a ser excluido, esqueca o Javascript (na verdade esqueca de qualquer jeito :D).

No proprio botao ou link voce faz isso, conforme eu coloquei no outro comentario. Se for link, fica super-simples: poe o link como servletExclusao?id=[ID DO ITEM] e boas.

Se voce quiser fazer com um botao mesmo, precisa de um pouquinho mais de HTML, mas eh tranquilo: crie um form para cada item e no form voce aponta o action para servletExclusao?id=[ID DO ITEM]. Existem outras opcoes, como colocar o ID num campo hidden, mas essa de colocar o ID no action eh mais simples.

E eh isso. Parece complicado, mas no comeco eh assim mesmo. Quando voce se habituar com os conceitos e tal pode partir pra algum framework que substitua o JSP na cada view, conforme o Lipe recomendou.

Marcio Kuchma

Hehe blz entao, entao o Script que me passaram la pra ele atrubuir o ID automaticamente (acho q era automaticamente??) eu esqueco certo?

[quote=kuchma]
No proprio botao ou link voce faz isso, conforme eu coloquei no outro comentario. Se for link, fica super-simples: poe o link como servletExclusao?id=[ID DO ITEM] e boas.[/quote]

Neste caso eu so coloco id=[id do item] em kd um e na servlet eu pego esse id com getParameter(“id”) ,positivo ne?

[quote=kuchma]
Se voce quiser fazer com um botao mesmo, precisa de um pouquinho mais de HTML, mas eh tranquilo: crie um form para cada item e no form voce aponta o action para servletExclusao?id=[ID DO ITEM]. Existem outras opcoes, como colocar o ID num campo hidden, mas essa de colocar o ID no action eh mais simples.[/quote]

Bem neste caso e quase e mesma coisa q no link ne, e so eu colocar um Form para kd registro com sua id,Positivo ne?

Nossa em vez de eu ficar falando se esta certo ou nao eu vou testar aqui OK.
Hehehe valeu ai de novo pessoal.