Pessoal, gostaria de ver com vocês se alguém poderia me dar uma dica para resolver o seguinte problema: tenho o seguinte código de um formulário de cadastro.
Conexao conexao = new Conexao();
Connection conn = null;
PreparedStatement pstmt = null;
conn = conexao.getConnection();
String SQL = "";
String nomeusuario = "";
nomeusuario = String.valueOf(session.getValue("nomeusuario"));
try {
if (!("".equals(nomeusuario)) && (!("null".equals(nomeusuario)))){
%><tr><center><b>Groups:</b>
<table align="center">
<td>Nome do Grupo:</td>
<td><input type="text" name="nomegrupo" size="40" maxlength="40" ><font size="1"> </font></td>
<td>Tipo do Grupo:</td>
<td><select name="tipogrupo">
<%SQL = "Select codtipogrupo, nome from tipogrupo order by nome";
pstmt = conn.prepareStatement(SQL);
ResultSet rs = pstmt.executeQuery();
while (rs.next()){
String codtipogrupo = rs.getString(1);
String nomegrupo = rs.getString(2);%>
<option value="<%=codtipogrupo%>"><%=nomegrupo%></option>
<%}
%></select></td>
</table>
<table align="center">
<td align="left"><input type="submit" name="Submit" value="Salvar"></td>
<%session.putValue("nomeusuario",nomeusuario);
%>
</form>
<form name="form1" method="post" action="listagem.jsp">
<td align="left"><input type="submit" name="Submit2" value="Voltar"></td>
<%session.putValue("nomeusuario",nomeusuario);
%>
</form>
</table>
<%
}
else{%><td align="center"><font size="4" color="#AA0000">A sessão expirou, você precisa conectar novamente</font></td>
<script language="Javascript"><!--
var timer = 2;
function countdown(){
if(timer > 0){
timer -= 1;
setTimeout("countdown()",1000);
}
else{
location.href='index.html';
}
}
countdown();
--></script>
<%
}%></center><%
}catch (Exception e) {%>
//out.println("Não foi possível conectar ao banco" + e.getMessage());
}
finally{
try{
pstmt.close();
conn.close();
}catch (Exception e){
e.printStackTrace();
}
}
Após o seu preenchimento o usuário clica em salvar e os dados do mesmo são enviados para uma página onde os dados são inseridos numa tabela.
String nome = request.getParameter("nomegrupo");
String tipo = request.getParameter("tipogrupo");
String nomeusuario = "";
nomeusuario = String.valueOf(session.getValue("nomeusuario"));
Conexao conexao = new Conexao();
Connection conn = null;
PreparedStatement pstmt = null;
conn = conexao.getConnection();
String SQL = "";
try {
if (!("".equals(nomeusuario)) && (!("null".equals(nomeusuario)))){
if (!("".equals(nome))){
SQL = "Insert into grupo(codtipogrupo, nome) values ('"+tipo+"', '"+nome+"')";
pstmt = conn.prepareStatement(SQL);
pstmt.executeUpdate();
%><td align="center"><font size="4" color="#AA0000">Grupo cadastrado com sucesso</font></td>
<script language="Javascript"><!--
var timer = 2;
function countdown(){
if(timer > 0){
timer -= 1;
setTimeout("countdown()",1000);
}
else{
location.href='listagem.jsp';
<%session.putValue("nomeusuario",nomeusuario);
%>
}
}
countdown();
--></script>
<%
}
else{
%><td align="center"><font size="4" color="#AA0000">Não existem dados a serem salvos</font></td>
<script language="Javascript"><!--
var timer = 2;
function countdown(){
if(timer > 0){
timer -= 1;
setTimeout("countdown()",1000);
}
else{
location.href='cadGrupo.jsp';
<%session.putValue("nomeusuario",nomeusuario);
%>
}
}
countdown();
--></script>
<%
}
}
else{%><td align="center"><font size="4" color="#AA0000">A sessão expirou, você precisa conectar novamente</font></td>
<script language="Javascript"><!--
var timer = 2;
function countdown(){
if(timer > 0){
timer -= 1;
setTimeout("countdown()",1000);
}
else{
location.href='index.html';
}
}
countdown();
--></script>
<%
}%></center><%
} catch (Exception e) {
//out.println("Não foi possível conectar ao banco" + e.getMessage());
}
finally{
try{
pstmt.close();
conn.close();
}catch (Exception e){
e.printStackTrace();
}
}
Acontece que após este procedimento, existe a possibilidade do usuário de utilizar os botões de Voltar e Avançar do navegador e com isto a possibilidade de o usuário salvar várias vezes o mesmo dado, é claro que com chave primária diferente, pois ao utilizar os botões do navegador, o formulário permanece preenchido. Gostaria de ver se alguém teria uma dica de como posso resolver este problema.