Problema com JSP sem servlet

Seguinte tenho algumas telas e toda estou tendo os mesmos problemas,tenho 2 grupos de CRUD diferentes e sempre que faço algum cadastro ele está sempre inserindo no banco como se eu tivese executado os campos todos vazios ou em branco,é como se ele executa-se a query antes de eu clicar no botão…

Abaixo está o codigo,pode perceber que não estou usando servlet sempre crio a conexão em cada arquivo .jsp quando vou usa-la e executo a query que desejo e assim vai…

ps:Ignore o fato de todos os campos estarem em string isso vai ser acertado mais para frente.

[code]<%@ page import=“java.util."%>
<%@ page import="java.sql.
” %>
<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1”
pageEncoding=“ISO-8859-1”%>

Cadastro Condutor

Cadastro dos condutores de uma empresa

				<tr>
					<td colspan ="2">
							Condutor : <input type ="text" name ="condutor" size="40">
					</td>														

					<td align ="center" colspan  ="2">
						Tipo de Habilitação:
						<select name="carta">
										<option value="A">A</option>
										<option value="B">B</option>
										<option value="C">C</option>
										<option value="D">D</option>
										<option value="E">E</option>
										</select>
					<td colspan ="1" align ="center">
							Numero da Habilitação:
							<input type ="text" name ="nhab" size="21">										
					</td>	

				</tr>
		</Table>
		</td>
	</tr>
</table>
<br> 
Deseja receber informações sobre nossas promoções no seu email?<br> Sim<input type="radio" name="status" Value="S">
																	Não<input type="radio" name="status" Value="N">
							<br>
							<br>


<input type ="reset" name = "Reset"  value ="Apagar">
<input type ="button" name ="Voltar" value ="Voltar" Onclick = "window.location ='Homepage.jsp';">
<input type ="submit" name = "Submit" value = "Concluir">
<%
	String cnpj = request.getParameter("cnpj");
	String condutor = request.getParameter("condutor");
	String carta =request.getParameter("tipo");
	String numerohab = request.getParameter("numerohabi");
	String cpf = request.getParameter("cpf");
	
	
	Connection con = null;  
 	Statement st = null;  
 	ResultSet res = null;
 	
 	try  
	   {     Class.forName("org.postgresql.Driver");  
	        con = DriverManager.getConnection  
	        ("jdbc:postgresql://localhost:5432/postgres","postgres","aluno");  
	        st = con.createStatement();  
	     
	      ResultSet rs=st.executeQuery("insert into condutores(cpf,cnpj,condutor,carta,numerohab)"+
	      "values"+ 

	      "('"+cpf+"','"+cnpj+"','"+condutor+"','"+carta+"','"+numerohab+"')"
	     
	    		  );  
	     
	     
	   out.println("Condutor inserido com sucesso");
	     
	        con.close();  
	   }  
	   catch (ClassNotFoundException cnfex)  
	   {    out.println("Falha ao carregar o driver");  
	   }  
	   catch (SQLException sqlex)  
	   {    //out.println("Erro "+sqlex);  
	   }
			

%>
[/code]
CNPJ(Empresa deve estar pré-cadastrada): CPF do Condutor:

Amigo o problema do seu código é que não há nenhuma condição (clicar no botão) para executar o comando.

É preciso fazer um if, por exemplo:

[code]
<%

if (request.getParameter(“Submit”) != null && request.getParameter(“Submit”).equals(“Concluir”)) {
String cnpj = request.getParameter(“cnpj”);
String condutor = request.getParameter(“condutor”);
String carta =request.getParameter(“tipo”);
String numerohab = request.getParameter(“numerohabi”);
String cpf = request.getParameter(“cpf”);

    Connection con = null;    
    Statement st = null;    
    ResultSet res = null;  
      
    try    
       {     Class.forName("org.postgresql.Driver");    
            con = DriverManager.getConnection    
            ("jdbc:postgresql://localhost:5432/postgres","postgres","aluno");    
            st = con.createStatement();    
           
          ResultSet rs=st.executeQuery("insert into condutores(cpf,cnpj,condutor,carta,numerohab)"+  
          "values"+   

          "('"+cpf+"','"+cnpj+"','"+condutor+"','"+carta+"','"+numerohab+"')"  
           
                  );    
           
           
       out.println("Condutor inserido com sucesso");  
           
            con.close();    
       }    
       catch (ClassNotFoundException cnfex)    
       {    out.println("Falha ao carregar o driver");    
       }    
       catch (SQLException sqlex)    
       {    //out.println("Erro "+sqlex);    
       }  
      }        
  
%>  

[/code]

Mesmo assim acho melhor reavaliar a forma de implementação. Não é nada legal deixar a conexão nas páginas JSPs e nem mesmo tratar o fluxo da aplicação (Controller) nas próprias páginas.

Nem que seja para usar servlet junto com jsp e deixar a parte de fluxo no servlet é melhor do que fazer desta forma!