Boa noite companheiros,
Venho aqui mais uma vez solicitar uma ajuda, o problema é o seguinte:
tenho uma página jsp com um formulário, ao clicar no botão enviar,
este formulário é submetido para uma pagina java (servlet), onde faz a inclusão do registro no banco,
e retorna a uma página jsp onde lista os registros,
até ai tudo bem, o problema é que ao inserir um registro,
caso atualize a página, ele executa a mesma operação, ou seja, ele inclui os mesmos dados novamente.
Os valores desses campos estão em sessão? Se sim, basta limpar esses valores no MB/Servlet.
estou simplesmente submetendo o formulário na jsp,
capturando o mesmo com request.getParameter(“campo”) e fazendo a operação de inclusão
conforme código abaixo.
CADASTRAR DICA DE SAÚDE
[code]<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1”
pageEncoding=“ISO-8859-1”%>
<!doctype html public “-//w3c//dtd xhtml 1.0 strict//pt” “http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd”>
<head>
<title>title</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<link type="text/css" href="css/cadastro.css" rel="stylesheet"/>
<link type="text/css" href="css/Funcionario.css" rel="stylesheet"/>
</head>
<body>
<center><h2>Cadastrar dica</h2></center>
<br />
<div id="divError" style="display: none;" align="left"></div>
<br/>
<form id="cadastro" method="post" action="ControleDicas">
<table align="center">
<tr valign="top" align="left">
<td width="83" height="38"><font color="red">*</font><label>Tema: </label></td>
<td><input name="tema" type="text" id="tema" label="Tema" req="true"/>
</td>
</tr>
<tr valign="top" align="left">
<td width="79" height="38" ><font color="red">*</font><label>Descrição: </label></td>
<td><textarea name="descricao" cols="52" rows="10" id="descricao" label="Descrição" req="true"></textarea></td>
</tr>
<tr valign="bottom" align="right">
<td height="43" colspan="2">
<input type="image" src="imagem/salvar.png" onclick="valida('cadastro');"/>
<input type="hidden" name="acao" value="cadastrar"/>
<a onclick="lT1()"><img src="imagem/limpar.png"/></a>
</td>
</tr>
</table>
</form>
</body>
[/code]
CLASSE JAVA (SERVLET)…
[code]if (acao != null && acao.equals(“cadastrar”)){
String tema = request.getParameter(“tema”);
String descricao = request.getParameter(“descricao”);
if(tema.isEmpty() || descricao.isEmpty() ){
request.setAttribute("msg2", "Preencha todos os campos obrigatórios!");
request.getRequestDispatcher("Gdicas.jsp?pgn=CadastrarDicas.jsp").forward(request, response);
}else{
Dicas_Saude d = new Dicas_Saude();
d.setTema(tema);
d.setDescricao(descricao);
Dicas_SaudeDao dao = new Dicas_SaudeDao();
dao.inserir(d);
request.setAttribute("msg", "Cadastrado com sucesso!");
request.getRequestDispatcher("Gdicas.jsp").forward(request, response);
}
}[/code]
…
Ou você retira essas informações do request, ou então utilizar response.sendRedirect ao invés do método forward.
jakefrog muito obrigado,
resolvido utilizando o método response.sendRedirect