Sistema JSP

Olá pessoal.
Estou criando um pequeno sistema de clínica médica em JSP.
Mas estou com problema na hora de cadastrar médicos.
Ele está cadastrando Pacientes e Exames, mas não está cadastrando os Médicos.
Sozinha ainda não consegui identificar o erro.
Será que vocês poderiam me ajudar com isso?

Esse é o meu formulário para cadastrar médico: FormularioMedico.jsp

[code]<%@ page contentType=“text/html” language=“java” import=“java.sql.*”%>
<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
<html>
<head>
<meta http-equiv=“Content-Type” content=“text/html; charset=ISO-8859-1”>
<title>Insert title here</title>
</head>

<%
Connection con = null;
Statement st = null;
try {
Class.forName(“com.mysql.jdbc.Driver”).newInstance();
con = DriverManager.getConnection(“jdbc:mysql://localhost:3306/scm”,“root”, “1234”);
st = con.createStatement();

}  catch (Exception e) {  
   out.println("Não foi possível conectar ao banco: " + e.getMessage());
}
     %&gt;	       

<body>

<SCRIPT language=JavaScript>
function validar(formulario) {
if (formulario.tfNomeMedico.value == ‘’){
alert (‘O campo Nome não pode ficar em branco’);
formulario.tfNomeMedico.focus();
return false;
}

if (formulario.tfCrm.value == ''){
	alert ('O campo Crm não pode ficar em branco');
	formulario.tfCrm.focus();
	return false;
	}

return true;

}
</SCRIPT>

<%

int id = -1;
int medico_id = -1;
String idp = (String)request.getParameter(“medico_id”);

if ( idp != null) medico_id = Integer.parseInt(idp);

String nome = “”;
String crm = “”;
//variavel que vai receber o valor selecionado no list/menu
String exame = “”;

String sql;

if (medico_id != -1){ //buscar no banco o exame

      sql = "select * from medico where medico_id = "+medico_id;
		ResultSet rs = st.executeQuery(sql);
		 if (rs.next()) {
			nome = rs.getString("nome");
			crm = rs.getString("crm");
			exame = rs.getString("exame");
	}
} 

%>
<table width=“780” border=“1” align=“center”>
<tr>
<td></td>
</tr>
<tr>
<td><form name=“form1” method=“post” action=“CadastrarMedico.jsp”>
<input name=“tfId” type=“hidden” id=“tfId” value="<%=medico_id%>">
<label>Nome do Médico</label>
<label>
<input name=“tfNomeMedico” type=“text” id=“tfNomeMedico”>
</label>


<label>Crm</label>
<label>
<input name=“tfCrm” type=“text” id=“tfCrm”>
</label>
 


Exame
<label>
<select name=“cbExameMedico” id=“cbExameMedico”>

	 &lt;%
		 sql = "select * from exame";
		ResultSet rs = st.executeQuery(sql);
		 
		while (rs.next()) {%&gt;
			&lt;option value=&lt;%=rs.getString("exame_id") %&gt;&gt;&lt;%=rs.getString("descricao") %&gt;&lt;/option&gt;&lt;%
		}
		
		
		if ((id != -1) && (exame.equals(""))) out.println("selected"); 
     %&gt;
	 
    &lt;/select&gt;
    &lt;/label&gt;
  </p>
  <p>
    &lt;label&gt;
    &lt;input name="btCadastraMedico" type="submit" id="btCadastraMedico" value="Cadastrar"&gt;
    &lt;input name="frmMedico_id" type="hidden"  value="&lt;%=medico_id%&gt;"&gt;
    &lt;/label&gt;
    &lt;label&gt;
    &lt;input name="btCancelaMedico" type="submit" id="btCancelaMedico" value="Cancelar"&gt;
    &lt;/label&gt;
  </p>
&lt;/form&gt;
&lt;/td&gt;

</tr>
</table>
</body>
</html>
[/code]

E essa é a minha classe responsável por realizar o cadastro: CadastrarMedico.jsp

&lt;%@ page contentType="text/html" language="java" import="java.sql.*"%&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"&gt;
&lt;title&gt;Insert title here&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;%
int medico_id = -1;
String sID = (String)request.getParameter("frmMedico_id");

if (sID != null) medico_id = Integer.parseInt(sID);

int id = Integer.parseInt(request.getParameter("tfId"));
	String nome = request.getParameter("tfNomeMedico");
	String crm = request.getParameter("tfCrm");
	String exame = request.getParameter("cbExameMedico");
	int IdExame;
	//int exame = (Integer.parseInt(request.getParameter("cbExameMedico")));
	//exame = cbExameMedico.SelectedValue.ToString();
	//OIDProduto = cmbProduto.SelectedValue.ToString();
	
	String sql;
	String msn = "";
	Connection con;  
	try {  
		Class.forName("com.mysql.jdbc.Driver").newInstance();
	      con = DriverManager.getConnection("jdbc:mysql://localhost:3306/scm","root", "1234");
	      Statement st = con.createStatement();
	      	
	      	//select para pegar o ID do exame
			sql = "select exame_id from exame where exame =" +exame;
	      	//variavel IdExame recebe o valor de sql
			IdExame = Integer.parseInt(sql);
	      
	     	if (medico_id == -1) {//cadastrar
	    		sql = "insert into medico(nome,crm,exame_id)values('"+
	    				nome+"','"+
	    				crm+"','"+
	    				IdExame+"')";
	     		msn = "medico cadastrado com sucesso";
	     	}else { //atualizar
	    		sql = "update medico set nome = '"+nome+
	    		                         ", crm = '"+crm+", exame_id = '"+IdExame+"where medico_id = "+medico_id;
	    		msn = "Medico atualizado com sucesso";
	    	}
	     	st.executeUpdate(sql);
	} catch (Exception e) {  
	   msn = "Não foi possível conectar ao banco: " + e.getMessage();
	}
%&gt;


&lt;/body&gt;
&lt;/html&gt;

Desde já, muito obrigado!

boa tarde, retorna algum erro, alguma execao ao tentar cadastrar o médico?

Não.
Não está retornando nenhuma exceção.

Os dados referentes ao médico chegam até a jsp que faz o cadastro?
Tenta fazer assim, ali na CadastrarMedico.jsp, coloca

out.println(nome+" "+crm);

para ter certeza que está recebendo os parâmetros.
Aliás, por quê está fazendo com scriptlets?

Tá pegando o nome e o crm do médico.
Mas não está efetuando o cadastro.

Quanto as scriptlets, foi meu professor que pediu.

Então está entrando em teu else. Aí, como ele tenta atualizar um medico que não está cadastrado, nada acontece.
Verifique se o código é -1 mesmo.

Ah, sim, aí está explicado. Provavelmente os próximos passos serão servlets.

Será que o problema é o list/menu cbExameMedico?