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.
T
thayson.silva
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
<%@pagelanguage="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"><html><head><title>title</title><metahttp-equiv="content-type"content="text/html; charset=ISO-8859-1"/><linktype="text/css"href="css/cadastro.css"rel="stylesheet"/><linktype="text/css"href="css/Funcionario.css"rel="stylesheet"/></head><body><center><h2>Cadastrardica</h2></center><br/><divid="divError"style="display: none;"align="left"></div><br/><formid="cadastro"method="post"action="ControleDicas"><tablealign="center"><trvalign="top"align="left"><tdwidth="83"height="38"><fontcolor="red">*</font><label>Tema:</label></td><td><inputname="tema"type="text"id="tema"label="Tema"req="true"/></td></tr><trvalign="top"align="left"><tdwidth="79"height="38"><fontcolor="red">*</font><label>Descrição:</label></td><td><textareaname="descricao"cols="52"rows="10"id="descricao"label="Descrição"req="true"></textarea></td></tr><trvalign="bottom"align="right"><tdheight="43"colspan="2"><inputtype="image"src="imagem/salvar.png"onclick="valida('cadastro');"/><inputtype="hidden"name="acao"value="cadastrar"/><aonclick="lT1()"><imgsrc="imagem/limpar.png"/></a></td></tr></table></form></body></html>
CLASSE JAVA (SERVLET)...
if(acao!=null&&acao.equals("cadastrar")){Stringtema=request.getParameter("tema");Stringdescricao=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_Sauded=newDicas_Saude();d.setTema(tema);d.setDescricao(descricao);Dicas_SaudeDaodao=newDicas_SaudeDao();dao.inserir(d);request.setAttribute("msg","Cadastrado com sucesso!");request.getRequestDispatcher("Gdicas.jsp").forward(request,response);}}
...
H
Hebert_Coelho
Ou você retira essas informações do request, ou então utilizar response.sendRedirect ao invés do método forward.
T
thayson.silva
jakefrog muito obrigado,
resolvido utilizando o método response.sendRedirect