aqui está o fonte completo:
os JOptionPane foram usados para saber onde está o erro.
<%@pageimport="java.sql.Connection"%><%@pageimport="java.sql.DriverManager"%><%@pageimport="java.sql.PreparedStatement"%><%@pageimport="java.sql.ResultSet"%><%@pageimport="java.sql.SQLException"%><%try{Class.forName("org.gjt.mm.mysql.Driver").newInstance();Connectionconexao=DriverManager.getConnection("jdbc:mysql://localhost/info_pai","infocad","dacofni123");//paratestejavax.swing.JOptionPane.showMessageDialog(null,"carregou o driver");//eleparadeexecutaraquiString[]respostasbd=(String[])session.getAttribute("respostas");String[]perguntas=(String[])session.getAttribute("perguntas");//paratestefor(inta=0;a<10;a++){javax.swing.JOptionPane.showMessageDialog(null,String.valueOf(a));}//ObtémasrespostasdigitadaspeloalunonapáginaanteriorString[]respostasusu=newString[10];javax.swing.JOptionPane.showMessageDialog(null,"primeiro for");for(inti=0;i<respostasusu.length;i++){javax.swing.JOptionPane.showMessageDialog(null,String.valueOf(i));Stringresp="Resp"+String.valueOf(i+1);respostasusu[i]=request.getParameter(resp);}//Correçãodaprovaintacertos=0;interros=0;javax.swing.JOptionPane.showMessageDialog(null,"segundo for");for(intj=0;j<respostasusu.length;j++){javax.swing.JOptionPane.showMessageDialog(null,String.valueOf(j));Stringusu=respostasusu[j];Stringbd=respostasbd[j];if(usu.equalsIgnoreCase(bd))acertos++;elseerros++;}inttotal=acertos+erros;floataproveitamento=(acertos/total)*100;//Stringcodigoprova=(String)session.getAttribute("cd_prova");PreparedStatementprova=conexao.prepareStatement("INSERT INTO tb_prova (rm,nr_acertos,nr_erros,pc_aproveitamento,cd_data_prova)"+" VALUES (?,?,?,?,?);");prova.setString(1,(String)session.getAttribute("usuario"));prova.setInt(2,acertos);prova.setInt(3,erros);prova.setFloat(4,aproveitamento);prova.setString(5,(String)session.getAttribute("cd_data_prova"));intresult=prova.executeUpdate();prova=conexao.prepareStatement("SELECT * FROM tb_prova;");ResultSetresulprova=prova.executeQuery();resulprova.last();javax.swing.JOptionPane.showMessageDialog(null,"terceiro for");for(intk=0;k<respostasusu.length;k++){javax.swing.JOptionPane.showMessageDialog(null,String.valueOf(k));PreparedStatementresposta=conexao.prepareStatement("INSERT INTO tb_respostas (id_prova,cd_questao,resposta,rm)"+" VALUES (?,?,?,?);");resposta.setInt(1,resulprova.getInt("id_prova"));resposta.setInt(2,Integer.parseInt(perguntas[k]));resposta.setString(3,respostasusu[k]);resposta.setString(4,(String)session.getAttribute("usuario"));result+=resposta.executeUpdate();}if(result==11){response.sendRedirect("./mensagem_prova.jsp");}else{response.sendRedirect("./prova.jsp?ERRO=Problema no Banco de Dados, não foi possível concluir a sua prova");}}catch(Exceptione){response.sendRedirect("realizar_prova.jsp?erro=ERRO: "+e.toString());}%>
qualquer ajuda eu agradeço
Fox_McCloud
Se for possível, use HashMap para salvar dados na sessão, não vetor, que é bem mais complexo. Isso alivia os streamings de transmissão de dados, processamento, uso de memória… Transmitir vetor pela sessão causa sobrecarga no sistema.